Sha256: 85f2efcc1f917a7b34a4c514f458ada450f61207a958b0b324b34a35a7aa814d

Contents?: true

Size: 1.48 KB

Versions: 20

Compression:

Stored size: 1.48 KB

Contents

module Betterlog
  class LogEventFormatter < ActiveSupport::Logger::Formatter
    include ActiveSupport::TaggedLogging::Formatter

    def emitter
      'legacy'
    end

    def call(severity, timestamp, program, message)
      super
      message = message.to_s
      if cc.log.legacy_supported
        if message.blank?
          return ''
        elsif !Log::Event.is?(message)
          m = message.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,
          )
          if backtrace = m.grep(/^\s*([^:]+):(\d+)/)
            if backtrace.size > 1
              event[:backtrace] = backtrace.map(&:chomp)
              event[:message] = 'a logged backtrace'
            end
          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 = event.to_json
        end
      end
    rescue => e
      Betterlog::Log.logger.error(e)
    ensure
      # Do not "message << ?\n" - A frozn string may be passed in
      message.end_with?(?\n) or message = "#{message}\n"
      return message
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
betterlog-0.13.1 lib/betterlog/log_event_formatter.rb
betterlog-0.13.0 lib/betterlog/log_event_formatter.rb
betterlog-0.12.2 lib/betterlog/log_event_formatter.rb
betterlog-0.12.1 lib/betterlog/log_event_formatter.rb
betterlog-0.12.0 lib/betterlog/log_event_formatter.rb
betterlog-0.11.0 lib/betterlog/log_event_formatter.rb
betterlog-0.10.0 lib/betterlog/log_event_formatter.rb
betterlog-0.9.0 lib/betterlog/log_event_formatter.rb
betterlog-0.8.1 lib/betterlog/log_event_formatter.rb
betterlog-0.8.0 lib/betterlog/log_event_formatter.rb
betterlog-0.7.2 lib/betterlog/log_event_formatter.rb
betterlog-0.7.1 lib/betterlog/log_event_formatter.rb
betterlog-0.7.0 lib/betterlog/log_event_formatter.rb
betterlog-0.6.1 lib/betterlog/log_event_formatter.rb
betterlog-0.5.0 lib/betterlog/log_event_formatter.rb
betterlog-0.4.0 lib/betterlog/log_event_formatter.rb
betterlog-0.3.0 lib/betterlog/log_event_formatter.rb
betterlog-0.2.2 lib/betterlog/log_event_formatter.rb
betterlog-0.2.1 lib/betterlog/log_event_formatter.rb
betterlog-0.2.0 lib/betterlog/log_event_formatter.rb