class Log15::Logger

Attributes

context[RW]
logger[RW]

Public Class Methods

default() click to toggle source
# File lib/log15/logger.rb, line 20
def self.default
  @logger ||= Log15::Logger.new
end
new(logger=Rails.logger, context={}) click to toggle source
# File lib/log15/logger.rb, line 7
def initialize(logger=Rails.logger, context={})
  @context = context
  @logger = logger.dup
  @logger.formatter = proc do |severity, datetime, progname, msg|
    date = "#{datetime.month}-#{datetime.day}"
    time = "#{pad(datetime.hour)}:#{pad(datetime.min)}:#{pad(datetime.sec)}"
    severities = { "ERROR" => "EROR", "DEBUG" => "DBUG" }
    original_severity = severity
    severity = severities.fetch(severity, severity)
    "#{severity}[#{date}|#{time}] #{msg} lvl=#{original_severity.downcase}\n"
  end
end
sanitize(params, key, opts={}) click to toggle source
# File lib/log15/logger.rb, line 24
def self.sanitize(params, key, opts={})
  if params[key]
    raise SanitizationError, "expected #{key} to not be blank" if params[key] == ""
    if opts[:expected_length]
      minimum_size = opts[:expected_length].first
      maximum_size = opts[:expected_length].last
      length = params[key].length
      if length < minimum_size || length > maximum_size
        raise SanitizationError, "expected access_token to be between #{minimum_size} and #{maximum_size} characters long (is #{length})"
      end
    end
    params[key] = params[key][0..5] + "****" + params[key][-6..-1]
  else
    raise SanitizationError, "expected #{key} to be present"
  end
  params
end

Public Instance Methods

debug(msg, data={}) click to toggle source
# File lib/log15/logger.rb, line 42
def debug(msg, data={})
  logger.debug(process(msg, data))
end
error(msg, data={}) click to toggle source
# File lib/log15/logger.rb, line 54
def error(msg, data={})
  logger.error(process(msg, data))
end
info(msg, data={}) click to toggle source
# File lib/log15/logger.rb, line 46
def info(msg, data={})
  logger.info(process(msg, data))
end
new_context(new_context={}) click to toggle source
# File lib/log15/logger.rb, line 58
def new_context(new_context={})
  self.class.new(logger, self.context.merge(new_context))
end
warn(msg, data={}) click to toggle source
# File lib/log15/logger.rb, line 50
def warn(msg, data={})
  logger.warn(process(msg, data))
end

Private Instance Methods

pad(number) click to toggle source
# File lib/log15/logger.rb, line 80
def pad(number)
  number.to_s.rjust(2, '0')
end
process(msg, data) click to toggle source
# File lib/log15/logger.rb, line 64
def process(msg, data)
  data.merge!(context)
  output = ["msg=#{msg.inspect}"]
  if data.keys.count > 0
    data.each do |k, v|
      if v.is_a?(Array) || v.is_a?(Hash)
        output << ["#{k}=#{JSON.dump(v).inspect}"]
      else
        output << ["#{k}=#{v.inspect}"]
      end
    end
  end

  output.join(" ")
end