Class: Ant::Logger::Config

Inherits:
Object
  • Object
show all
Includes:
DRY::ResourceInjector, Format
Defined in:
lib/ant/logger/config.rb

Constant Summary collapse

SEVERITIES =
{
  'debug' => ::Logger::DEBUG,
  'info' => ::Logger::INFO,
  'warn' => ::Logger::WARN,
  'error' => ::Logger::ERROR,
  'fatal' => ::Logger::FATAL
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Format

#format_builder

Constructor Details

#initialize(config) ⇒ Config

Returns a new instance of Config.



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ant/logger/config.rb', line 24

def initialize(config)
  @original_config = config
  register('file', config['stdout'] ? STDOUT : config['file'] || 'application.log')
  register('rotate_days', config['rotate_days'] || 7)
  register('rotate_size', config['rotate_size'] || 100 * 1024**2) # 100Mb
  register('date_format', config['date_format'] || '%Y-%m-%d %H:%M:%S')
  register('severity', config['severity'] || 'info')
  register('log_format', config['log_format'] ||
           "%time,%sev,%pid,%tid,%mod,%json\n")
  register('blacklist', config['blacklist'] || %w[pass password])
  register('logger', logger)
end

Class Method Details

.from_config(config) ⇒ Object



20
21
22
# File 'lib/ant/logger/config.rb', line 20

def self.from_config(config)
  new(config)
end

Instance Method Details

#loggerObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/ant/logger/config.rb', line 37

def logger
  @logger ||= begin
    logger = ::Logger.new(
      resource('file'),
      resource('rotate_days'),
      resource('rotate_size')
    )
    $stdout.sync = true if @original_config['stdout']
    logger.sev_threshold = SEVERITIES[resource('severity')]
    logger.datetime_format = resource('date_format')
    logger.formatter = format_builder(resource('log_format'))
    logger
  end
end

#merge_params(msg, data, debug, severity) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/ant/logger/config.rb', line 52

def merge_params(msg, data, debug, severity)
  blacklist = resource('blacklist') + ['debug']
  params = {}
  data.each { |k, v| params[k] = v unless blacklist.include?(k.to_s) }
  params[:debug] = debug if resource('severity') == 'debug'
  [msg, params]
end