Module: LogFormatter::Common::JSON

Included in:
Log4r::JSONFormatter::Base, Ruby::JSONFormatter::Base
Defined in:
lib/log_formatter/common_json.rb

Instance Method Summary collapse

Instance Method Details

#build_event(message, severity, time, progname) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/log_formatter/common_json.rb', line 2

def build_event(message, severity, time, progname)
  data = message
  if data.is_a?(String) && data.start_with?('{'.freeze)
    data = (JSON.parse(message) rescue nil) || message
  end

  event = case data
          when Hash
            data
          else
            {"message".freeze => msg2str(data)}
          end

  event[@config[:level].freeze] ||= severity if @config[:level]
  event[@config[:type].freeze] = progname if @config[:type]
  event[@config[:app].freeze] = @app if @config[:app]
  event[@config[:timestamp].freeze] = current_time(time).iso8601 if @config[:timestamp]
  "#{@ext.merge(event).to_json}\n"
end