class SemanticLogger::Formatters::Default
Default non-colored text log output
def call(log, logger)
Generates logs of the form:
Default text log format
def call(log, logger) self.log = log self.logger = logger [time, level, process_info, tags, named_tags, duration, name, message, payload, exception].compact.join(" ") end
def duration
def duration "(#{log.duration_human})" if log.duration end
def exception
def exception "-- Exception: #{log.exception.class}: #{log.exception.message}\n#{log.backtrace_to_s}" if log.exception end
def file_name_and_line
def file_name_and_line file, line = log.file_name_and_line(true) "#{file}:#{line}" if file end
def level
def level log.level_to_s end
def message
def message "-- #{log.message}" if log.message end
def name
def name log.name end
def named_tags
def named_tags named_tags = log.named_tags return if named_tags.nil? || named_tags.empty? list = [] named_tags.each_pair { |name, value| list << "#{name}: #{value}" } "{#{list.join(', ')}}" end
def payload
def payload pl = log.payload_to_s return unless pl "-- #{pl}" end
def process_info
Example:
Returns [String] the available process info
def process_info process_id = "#{pid}:" if pid fname = file_name_and_line fname ? "[#{process_id}#{thread_name} #{fname}]" : "[#{process_id}#{thread_name}]" end
def tags
def tags "[#{log.tags.join('] [')}]" if log.tags && !log.tags.empty? end
def thread_name
def thread_name format("%.30s", log.thread_name) end