class Hickory::Formatters::JSON

Public Class Methods

new(options = {}) click to toggle source
# File lib/hickory/formatters/json.rb, line 11
def initialize(options = {})
  @key_mapping = Hash.new.tap { |mapping|
    mapping[:message]   = options.fetch(:message_key, :message)
    mapping[:severity]  = options.fetch(:severity_key, :level)
    mapping[:timestamp] = options.fetch(:timestamp_key, :timestamp)
  }
end

Public Instance Methods

call(severity, time, progname, msg) click to toggle source
# File lib/hickory/formatters/json.rb, line 19
def call(severity, time, progname, msg)
  line = msg.tap { |message|
    message[@key_mapping[:message]]   = msg.delete(:message) unless @key_mapping[:message] == :message
    message[@key_mapping[:timestamp]] = time
    message[@key_mapping[:severity]]  = severity
    message[:progname]                = progname unless progname.nil?
    message[:tags]                    = current_tags unless current_tags.empty?
  }

  "#{line.to_json}\n"
end