Sha256: 6eb4590f305f6ecdd20f6f04f5b133418a2d243d25005fac41301a926c44c14b
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
require 'term/ansicolor' module Betterlog class LogEventFormatter < ActiveSupport::Logger::Formatter include ActiveSupport::TaggedLogging::Formatter include ComplexConfig::Provider::Shortcuts def emitter 'legacy' end def call(severity, timestamp, program, message) if cc.log.legacy_supported if message.blank? message = '' elsif !Log::Event.is?(message) m = message.to_s m = Term::ANSIColor.uncolor(m) m = m.sub(/\s+$/, '') timestamp = timestamp.utc.iso8601(3) event = Log::Event.new( emitter: emitter, timestamp: timestamp, message: m, severity: severity.to_s.downcase, # tags: current_tags, ) backtrace = m.scan(/^\s*(?:[^:]+):(?:\d+).*$/) if backtrace.size > 1 event[:backtrace] = backtrace.map { |b| b.sub(/\s+$/, '') } event[:message] = "#{backtrace.first}\n" end if l = caller_locations.reverse_each.each_cons(2).find { |c, n| n.absolute_path =~ /\/lib\/ruby\/.*?\/logger\.rb/ and break c } then event[:location] = [ l.absolute_path, l.lineno ] * ?: end program and event[:program] = program message = JSON.generate(event) end end rescue => e Betterlog::Log.logger.error(e) ensure # Do not "message << ?\n" - A frozen string may be passed in message.end_with?(?\n) or message = "#{message}\n" return message end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
betterlog-1.0.0 | lib/betterlog/log_event_formatter.rb |
betterlog-0.20.3 | lib/betterlog/log_event_formatter.rb |
betterlog-0.20.2 | lib/betterlog/log_event_formatter.rb |