module Woody::Logger

Public Instance Methods

formatter(app_name) click to toggle source
# File lib/woody/logger.rb, line 6
def formatter(app_name)
  proc do |severity, datetime, progname, msg|
    json_log = { 
      :app          => app_name,
      :"@timestamp" => datetime.strftime("%Y-%m-%dT%H:%M:%S.%LZ"),
      :level        => severity,
      app_name      =>  case
                          when Hash === msg
                            (progname && msg.merge({message: progname})) || msg
                          when msg.respond_to?(:to_hash)
                            (progname && msg.to_hash.merge({message: progname})) || msg.to_hash
                          else 
                            { message: ((progname && "#{progname}: #{msg}") || msg) }
                        end
    }.to_json
    "#{json_log}\n"
  end
end