16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/steno/codec/json.rb', line 16
def encode_record(record)
msg =
if record.message.valid_encoding?
record.message
else
escape_nonprintable_ascii(record.message.dup.force_encoding("BINARY"))
end
h = {
"timestamp" => record.timestamp.to_f,
"message" => msg,
"log_level" => record.log_level.to_s,
"source" => record.source,
"data" => record.data,
"thread_id" => record.thread_id,
"fiber_id" => record.fiber_id,
"process_id" => record.process_id,
"file" => record.file,
"lineno" => record.lineno,
"method" => record.method,
}
if iso8601_timestamps?
h["timestamp"] = Time.at(record.timestamp).utc.iso8601(6)
end
Yajl::Encoder.encode(h) + "\n"
end
|