class StructuredEventLogger::HumanReadableLogger

Constants

BOLD
CLEAR
CYAN
MAGENTA

Colors

WHITE

Attributes

colorize[RW]
log_level[RW]
logger[RW]

Public Class Methods

new(logger, colorize = ActiveSupport::LogSubscriber.colorize_logging, log_level = nil) click to toggle source
# File lib/structured_event_logger/human_readable_logger.rb, line 15
def initialize(logger, colorize = ActiveSupport::LogSubscriber.colorize_logging, log_level = nil)
  @logger, @colorize, @log_level = logger, colorize, log_level
end

Public Instance Methods

call(scope, event, hash, decorated_hash) click to toggle source
# File lib/structured_event_logger/human_readable_logger.rb, line 20
def call(scope, event, hash, decorated_hash)
  logger.add(log_level, format_hash(scope, event, hash))
end

Private Instance Methods

escape(value) click to toggle source
# File lib/structured_event_logger/human_readable_logger.rb, line 36
def escape(value)
  output = value.to_s
  output =~ /[\s"\\]/ ? output.inspect : output
end
format_hash(scope, event, hash, separator = ', ') click to toggle source
# File lib/structured_event_logger/human_readable_logger.rb, line 26
def format_hash(scope, event, hash, separator = ', ')
  @odd = !@odd
  message = hash.map {|k, v| "#{k}=#{escape(v)}"}.join(separator)
  if @colorize
    "  #{@odd ? CYAN : MAGENTA}#{BOLD}[#{scope}] #{event}: #{WHITE}#{message}#{CLEAR}"
  else
    "  [#{scope}] #{event}: #{message}"
  end
end