Class: Mixlib::Log::Formatter

Inherits:
Logger::Formatter
  • Object
show all
Defined in:
lib/mixlib/log/formatter.rb

Constant Summary collapse

@@show_time =
true

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.show_time=(show = false) ⇒ Object



26
27
28
# File 'lib/mixlib/log/formatter.rb', line 26

def self.show_time=(show = false)
  @@show_time = show
end

Instance Method Details

#call(severity, time, progname, msg) ⇒ Object

Prints a log message as ‘[time] severity: message’ if Chef::Log::Formatter.show_time == true. Otherwise, doesn’t print the time.



32
33
34
35
36
37
38
# File 'lib/mixlib/log/formatter.rb', line 32

def call(severity, time, progname, msg)
  if @@show_time
    sprintf("[%s] %s: %s\n", time.iso8601(), severity, msg2str(msg))
  else
    sprintf("%s: %s\n", severity, msg2str(msg))
  end
end

#format_exception(msg) ⇒ Object



60
61
62
63
# File 'lib/mixlib/log/formatter.rb', line 60

def format_exception(msg)
  "#{msg.message} (#{msg.class})\n" <<
    (msg.backtrace || []).join("\n")
end

#msg2str(msg) ⇒ Object

Converts some argument to a Logger.severity() call to a string. Regular strings pass through like normal, Exceptions get formatted as “message (class)nbacktrace”, and other random stuff gets put through “object.inspect”



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/mixlib/log/formatter.rb', line 43

def msg2str(msg)
  case msg
  when ::Hash
    if msg.has_key?(:err)
      format_exception(msg[:err])
    else
      msg[:msg]
    end
  when ::String
    msg
  when ::Exception
    format_exception(msg)
  else
    msg.inspect
  end
end