class Nucleus::Logging::Formatter

Constants

FORMAT

Attributes

datetime_format[RW]

Public Class Methods

new() click to toggle source
# File lib/nucleus/core/common/logging/request_log_formatter.rb, line 10
def initialize
  @datetime_format = nil
end

Public Instance Methods

call(severity, time, progname, msg) click to toggle source
# File lib/nucleus/core/common/logging/request_log_formatter.rb, line 14
def call(severity, time, progname, msg)
  request_part = if Thread.current[:nucleus_request_id].nil?
                   # if there is no request id, then fill up the space
                   "[#{'*' * 36}]"
                 else
                   "[#{Thread.current[:nucleus_request_id]}]"
                 end

  format(FORMAT, severity[0..0], request_part, format_datetime(time),
         $PID, severity, progname, msg2str(msg))
end

Private Instance Methods

format_datetime(time) click to toggle source
# File lib/nucleus/core/common/logging/request_log_formatter.rb, line 28
def format_datetime(time)
  if @datetime_format.nil?
    format(time.strftime('%Y-%m-%dT%H:%M:%S.') << '%06d ', time.usec)
  else
    time.strftime(@datetime_format)
  end
end
msg2str(msg) click to toggle source
# File lib/nucleus/core/common/logging/request_log_formatter.rb, line 36
def msg2str(msg)
  case msg
  when ::String
    msg
  when ::Exception
    "#{msg.message} (#{msg.class})\n" << (msg.backtrace || []).join("\n")
  else
    msg.inspect
  end
end