class Kybus::Logger::Config

Constants

SEVERITIES

Public Class Methods

from_config(config) click to toggle source
# File lib/kybus/logger/config.rb, line 20
def self.from_config(config)
  new(config)
end
new(config) click to toggle source
# File lib/kybus/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

Public Instance Methods

logger() click to toggle source
# File lib/kybus/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) click to toggle source
# File lib/kybus/logger/config.rb, line 52
def merge_params(msg, data, debug)
  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