class JsonFormatter
Custom Json Logger Formatter
Public Instance Methods
call(severity, time, _progname, msg)
click to toggle source
# File lib/rails_stdout_json_logging/json_formatter.rb, line 5 def call(severity, time, _progname, msg) return if msg.blank? log_line = { '@timestamp': time.utc.iso8601(6), level: severity.to_s }.merge(format(msg)).compact %(#{log_line.to_json}\n) end
format(msg)
click to toggle source
# File lib/rails_stdout_json_logging/json_formatter.rb, line 12 def format(msg) case msg when ::String { message: msg } when ::Hash msg when ::Exception format_exception(msg) else { message: msg.inspect } end end
format_exception(exception)
click to toggle source
# File lib/rails_stdout_json_logging/json_formatter.rb, line 25 def format_exception(exception) { exception: exception.class, message: exception.message, backtrace: exception.backtrace } end