3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/insque/json_formatter.rb', line 3
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
|