Class: LogStashFormatters::JsonEvent

Inherits:
Logger::Formatter
  • Object
show all
Defined in:
lib/logstash_formatters/json_event.rb

Instance Method Summary collapse

Instance Method Details

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



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/logstash_formatters/json_event.rb', line 5

def call(severity, time, progname, message)
  event = default_message(severity)

  unless message.is_a?(Hash)
    message = {:@message => message.to_s}
  end

  message.each do |key, value|
    if key == :@fields
      event[:@fields] = value.merge(event[:@fields])
    elsif (key.to_s[0] == '@')
      event[key] = value
    else
      event[:@fields][key] = value
    end
  end

  "#{event.to_json}\n"
end

#default_message(severity) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/logstash_formatters/json_event.rb', line 25

def default_message(severity)
  {
    :@source => ::Socket::gethostname,
    :@timestamp => Time.now,
    :@tags => [],
    :@fields => {severity: severity},
    :@message => ''
  }
end