Sha256: a75c4a2a29663e6a9ccc57b7d666156880968e555e5ab1baa0993768305d6c3a

Contents?: true

Size: 855 Bytes

Versions: 4

Compression:

Stored size: 855 Bytes

Contents

module Insque
  class JsonFormatter < ::Logger::Formatter
    def call(severity, time, progname, data)
      msg, additional_fields = if data.is_a? ::Hash
                                 [data[:msg], data[:additional_fields]]
      else
        [data, {}]
      end
      message = case msg
                when ::String
                  { message: msg }
                when ::Hash
                  msg
                when ::Exception
                  {
                    error: "#{ msg.message } (#{ msg.class })",
                    error_class: "#{msg.class}",
                    backtrace: (msg.backtrace || []).join("\n\t")
                  }
                else
                  { message: msg.inspect }
                end
      "#{message.merge(timestamp: time, level: severity).merge(additional_fields).to_json}\n"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
insque-0.7.4 lib/insque/json_formatter.rb
insque-0.7.3 lib/insque/json_formatter.rb
insque-0.7.2 lib/insque/json_formatter.rb
insque-0.7.1 lib/insque/json_formatter.rb