class AppLogger::Formatter::Json

Constants

FORMAT

Public Class Methods

new(hostname=`hostname`.chomp) click to toggle source
# File lib/app_logger/formatter/json.rb, line 8
def initialize(hostname=`hostname`.chomp)
  @hostname = hostname
end

Public Instance Methods

call(severity, datetime, progname, message) click to toggle source
# File lib/app_logger/formatter/json.rb, line 12
def call(severity, datetime, progname, message)
  msg = msg2hash(message)
  FORMAT % common_msg(severity, datetime, progname).merge(msg).to_json
end

Private Instance Methods

common_msg(severity, datetime, progname) click to toggle source
# File lib/app_logger/formatter/json.rb, line 27
def common_msg(severity, datetime, progname)
  {
    _host:     @hostname,
    _pid:      $$,
    _severity: severity,
    _time:     datetime.iso8601,
    _progname: progname
  }
end
msg2hash(message) click to toggle source
# File lib/app_logger/formatter/json.rb, line 18
def msg2hash(message)
  case message
  when Hash
    message
  else
    { log: message.to_s }
  end
end