56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/semantic_logger/formatters/new_relic_logs.rb', line 56
def call(log, logger)
hash = super(log, logger)
message = {
message: hash[:message].to_s,
tags: hash[:tags] || [],
named_tags: hash[:named_tags] || {},
**hash.slice(:metric, :metric_amount, :environment, :application, :payload)
}
message.merge!(duration: hash[:duration_ms]) if hash.key?(:duration_ms)
message.merge!(duration_human: hash[:duration]) if hash.key?(:duration)
result = {
**new_relic_metadata,
message: message.to_json,
timestamp: hash[:timestamp].to_i,
"log.level": log.level.to_s.upcase,
"logger.name": log.name,
"thread.name": log.thread_name.to_s
}
if hash[:exception]
result.merge!(
"error.message": hash[:exception][:message],
"error.class": hash[:exception][:name],
"error.stack": hash[:exception][:stack_trace].join("\n")
)
end
if hash[:file]
result.merge!(
"file.name": hash[:file],
"line.number": hash[:line].to_s
)
end
result
end
|