Class: TDAnalytics::LoggerConsumer
- Inherits:
-
Object
- Object
- TDAnalytics::LoggerConsumer
- Defined in:
- lib/thinkingdata-ruby/logger_consumer.rb
Overview
将数据写入本地文件, 需配合 LogBus 将数据上传到服务器由于 LogBus 有完善的失败重传机制,因此建议用户首先考虑此方案
Instance Method Summary collapse
- #add(msg) ⇒ Object
-
#close ⇒ Object
关闭 logger.
-
#initialize(log_path = '.', mode = 'daily', prefix: 'tda.log') ⇒ LoggerConsumer
constructor
LoggerConsumer 构造函数 log_path: 日志文件存放目录 mode: 日志文件切分模式,可选 daily/hourly prefix: 日志文件前缀,默认为 ‘tda.log’, 日志文件名格式为: tda.log.2019-11-15.
Constructor Details
#initialize(log_path = '.', mode = 'daily', prefix: 'tda.log') ⇒ LoggerConsumer
LoggerConsumer 构造函数
log_path:
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/thinkingdata-ruby/logger_consumer.rb', line 12 def initialize(log_path='.', mode='daily', prefix:'tda.log') case mode when 'hourly' @suffix_mode = '%Y-%m-%d-%H' when 'daily' @suffix_mode = '%Y-%m-%d' else raise IllegalParameterError.new("#{mode} is unsupported for LoggerConsumer. Replaced it by daily or hourly") end raise IllegalParameterError.new("prefix couldn't be empty") if prefix.nil? || prefix.length == 0 @current_suffix = Time.now.strftime(@suffix_mode) @full_prefix = "#{log_path}/#{prefix}." _reset end |
Instance Method Details
#add(msg) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/thinkingdata-ruby/logger_consumer.rb', line 31 def add(msg) unless Time.now.strftime(@suffix_mode) == @current_suffix @logger.close @current_suffix = Time.now.strftime(@suffix_mode) _reset end @logger.info(msg.to_json) end |
#close ⇒ Object
关闭 logger
41 42 43 |
# File 'lib/thinkingdata-ruby/logger_consumer.rb', line 41 def close @logger.close end |