Class: TDAnalytics::LoggerConsumer

Inherits:
Object
  • Object
show all
Defined in:
lib/thinkingdata-ruby/logger_consumer.rb

Overview

write data to file, it works with LogBus

Instance Method Summary collapse

Constructor Details

#initialize(log_path = '.', mode = 'daily', prefix: 'te.log') ⇒ LoggerConsumer

Returns a new instance of LoggerConsumer.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/thinkingdata-ruby/logger_consumer.rb', line 23

def initialize(log_path='.', mode='daily', prefix:'te.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)
  @log_path = log_path
  @full_prefix = "#{log_path}/#{prefix}"
  _reset
end

Instance Method Details

#add(msg) ⇒ Object



41
42
43
44
45
46
47
48
# File 'lib/thinkingdata-ruby/logger_consumer.rb', line 41

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

#closeObject



50
51
52
# File 'lib/thinkingdata-ruby/logger_consumer.rb', line 50

def close
  @logger.close
end