Sha256: 6321da7c048cf1bb82d99719263fbbc137412c6ecb9672ca54f63dcbf448ac55
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
module Semlogr module Sinks module Seq class ClefFormatter def initialize(opts = {}) default_opts = { mode: :custom, time_format: :ruby, use_to_json: true } @opts = default_opts.merge(opts) end def format(log_event) event = { '@t' => log_event.timestamp.iso8601(3), '@l' => log_event.severity.to_s, '@mt' => log_event.template.text } add_error(event, log_event.error) add_properties(event, log_event.properties) event_json = Oj.dump(event, @opts) "#{event_json}\n" end private def add_error(event, error) return unless error event['@x'] = "#{error[:type]}: #{error[:message]}" return unless error[:backtrace] && error[:backtrace].any? event['@x'] += "\n\s\s#{error[:backtrace].join("\n\s\s")}" end def add_properties(event, properties) event.merge!(properties) { |_, old, _| old } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
semlogr-sinks-seq-0.1.1 | lib/semlogr/sinks/seq/clef_formatter.rb |