class FluentLoggerRails::TaggedHashFormatter
Attributes
parent_key[RW]
Parent key - ensures that if the log is being merged into a higher level payload this key can be set in order to not conflict or be overridden.
Public Class Methods
new(merge_message_into_payload = false)
click to toggle source
Calls superclass method
# File lib/fluent_logger_rails/tagged_hash_formatter.rb, line 9 def initialize(merge_message_into_payload = false) super() @merge_message_into_payload = merge_message_into_payload # Override the Logger::Formatter default to a format that does not have a trailing space @datetime_format = "%Y-%m-%dT%H:%M:%S.%6N" end
Public Instance Methods
call(severity, timestamp, _progname, msg)
click to toggle source
# File lib/fluent_logger_rails/tagged_hash_formatter.rb, line 16 def call(severity, timestamp, _progname, msg) payload = if msg.is_a?(Hash) && @merge_message_into_payload msg else { message: msg.is_a?(String) ? msg.strip : msg, } end payload = payload.merge( { severity: format_severity(severity), timestamp: format_datetime(timestamp), }, ).merge(compact_tags.deep_dup) @parent_key ? { @parent_key => payload } : payload end
format_severity(severity)
click to toggle source
# File lib/fluent_logger_rails/tagged_hash_formatter.rb, line 35 def format_severity(severity) if severity.blank? 'ANY' elsif severity.is_a? Integer ActiveSupport::Logger::SEV_LABEL[severity] else severity end end
tagged(*tags) { |self| ... }
click to toggle source
# File lib/fluent_logger_rails/tagged_hash_formatter.rb, line 45 def tagged(*tags) add_tags(*tags) yield self ensure remove_tags(*tags) end