class MrLogaLoga::Formatters::Json
Description¶ ↑
A simple Json
formatter for MrLogaLoga
.
Format¶ ↑
The json formatter renders messages into a single-line json. Context
keys are embedded on the top level.
Log Format:
{ "severity": "Severity", .. "message": "Message", "key1": "Key1" }
Public Instance Methods
call(severity, datetime, progname, message, **context)
click to toggle source
Render a log message in JSON
@param severity [String] The message severity @param datetime [DateTime] The message date time @param progname [DateTime] The program name @param message [Object] The log message, which may not be a string @param context [Hash] The log message context
@return [String] the formatted log message
# File lib/mr_loga_loga/formatters/json.rb, line 27 def call(severity, datetime, progname, message, **context) message = message.nil? ? '' : msg2str(message).strip message_hash = { severity: severity, datetime: datetime.strftime('%Y-%m-%dT%H:%M:%S.%6N'), pid: Process.pid, progname: progname, message: (message.empty? ? nil : message), **context }.compact "#{message_hash.to_json}\n" end