class SemanticLogger::Formatters::Logfmt
Public Class Methods
new(time_format: :iso_8601, time_key: :timestamp, **args)
click to toggle source
Calls superclass method
# File lib/semantic_logger/formatters/logfmt.rb, line 6 def initialize(time_format: :iso_8601, time_key: :timestamp, **args) super(time_format: time_format, time_key: time_key, **args) end
Public Instance Methods
call(log, logger)
click to toggle source
Calls superclass method
# File lib/semantic_logger/formatters/logfmt.rb, line 10 def call(log, logger) @raw = super(log, logger) raw_to_logfmt end
Private Instance Methods
flatten_log()
click to toggle source
# File lib/semantic_logger/formatters/logfmt.rb, line 39 def flatten_log flattened = @parsed.map do |key, value| "#{key}=#{parse_value(value)}" end flattened.join(" ") end
handle_exception()
click to toggle source
# File lib/semantic_logger/formatters/logfmt.rb, line 32 def handle_exception return unless @raw.key? :exception @parsed[:tag] = "exception" @parsed = @parsed.merge(@raw[:exception]) end
handle_payload()
click to toggle source
# File lib/semantic_logger/formatters/logfmt.rb, line 26 def handle_payload return unless @raw.key? :payload @parsed = @parsed.merge(@raw[:payload]) end
parse_value(value)
click to toggle source
# File lib/semantic_logger/formatters/logfmt.rb, line 47 def parse_value(value) return value.to_json if value.instance_of? String value end
raw_to_logfmt()
click to toggle source
# File lib/semantic_logger/formatters/logfmt.rb, line 18 def raw_to_logfmt @parsed = @raw.slice(:timestamp, :level, :name, :message, :duration).merge tag: "success" handle_payload handle_exception flatten_log end