Sha256: 095c889f4d6fd57115331b8c7e57c79568fcd04e325026bf004eaafffc28dee6

Contents?: true

Size: 996 Bytes

Versions: 26

Compression:

Stored size: 996 Bytes

Contents

module Startback
  module Support
    class LogFormatter

      def call(severity, time, progname, msg)
        msg = { message: msg } if msg.is_a?(String)
        msg = { error: msg } if msg.is_a?(Exception)
        {
          severity: severity,
          time: time
        }.merge(msg)
         .merge(error: error_to_json(msg[:error], severity))
         .compact
         .to_json << "\n"
      end

      def error_to_json(error, severity = nil)
        return error if error.nil?
        return error if error.is_a?(String)
        return error.to_s unless error.is_a?(Exception)

        backtrace = error.backtrace[0..25] if severity == "FATAL"
        causes = error.causes.map{|c| error_to_json(c) } if error.respond_to?(:causes)
        causes = nil if causes && causes.empty?
        {
          message: error.message,
          backtrace: backtrace,
          causes: causes
        }.compact
      end

    end # class LogFormatter
  end # module Support
end # module Startback

Version data entries

26 entries across 26 versions & 3 rubygems

Version Path
startback-0.17.4 lib/startback/support/log_formatter.rb
startback-0.17.3 lib/startback/support/log_formatter.rb
startback-0.17.2 lib/startback/support/log_formatter.rb
startback-0.17.1 lib/startback/support/log_formatter.rb
startback-0.17.0 lib/startback/support/log_formatter.rb
startback-0.16.0 lib/startback/support/log_formatter.rb
startback-0.15.5 lib/startback/support/log_formatter.rb
startback-0.15.4 lib/startback/support/log_formatter.rb
startback-0.15.3 lib/startback/support/log_formatter.rb
startback-0.15.2 lib/startback/support/log_formatter.rb
startback-0.15.1 lib/startback/support/log_formatter.rb
startback-0.15.0 lib/startback/support/log_formatter.rb
startback-0.14.4 lib/startback/support/log_formatter.rb
startback-0.14.3 lib/startback/support/log_formatter.rb
startback-0.14.2 lib/startback/support/log_formatter.rb
startback-0.14.1 lib/startback/support/log_formatter.rb
startback-0.14.0 lib/startback/support/log_formatter.rb
startback-jobs-0.14.0 lib/startback/support/log_formatter.rb
startback-websocket-0.14.0 lib/startback/support/log_formatter.rb
startback-0.13.0 lib/startback/support/log_formatter.rb