lib/sapience/formatters/default.rb
# frozen_string_literal: true
module Sapience
module Formatters
class Default < Base
# Default text log format
# Generates logs of the form:
# 2011-07-19 14:36:15.660235 D [1149:ScriptThreadProcess] Rails -- Hello World
def call(log, _logger) # rubocop:disable AbcSize, PerceivedComplexity, CyclomaticComplexity
# Date & time
message = time_format.nil? ? "" : "#{format_time(log.time)} "
# Log level and process info
message += "#{log.level_to_s} [#{log.process_info}]"
# Tags
message += " " + log.tags.collect { |tag| "[#{tag}]" }.join(" ") if log.tags && !log.tags.empty?
# Duration
message += " (#{log.duration_human})" if log.duration
# Class / app name
message += " #{log.name}"
# Log message
message += " -- #{log.message}" if log.message
# Payload
if (payload = log.payload_to_s)
message += " -- " + payload
end
# Exceptions
if log.exception
message += " -- Exception: #{log.exception.class}: #{log.exception.message}\n"
message += log.backtrace_to_s
end
message
end
end
end
end