class Rundock::Logger::Formatter
Attributes
buffer[RW]
color[RW]
colored[RW]
date_header[RW]
indent_depth[RW]
short_header[RW]
show_header[RW]
suppress_logging[RW]
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/rundock/logger.rb, line 39 def initialize(*args) super @indent_depth = 0 @buffer = [] @rec = false @lock = false end
Public Instance Methods
add_indent()
click to toggle source
# File lib/rundock/logger.rb, line 65 def add_indent @indent_depth += 1 end
call(severity, datetime, progname, msg)
click to toggle source
# File lib/rundock/logger.rb, line 47 def call(severity, datetime, progname, msg) out = formatted_message(severity, datetime, progname, msg) @buffer << LogEntity.new(severity, datetime, progname, msg, indent_depth, self) if @rec if colored colorize(out, severity) else out end end
flush()
click to toggle source
# File lib/rundock/logger.rb, line 81 def flush return nil if @lock ret = @buffer.dup @buffer.clear ret end
formatted_message(severity, datetime, progname, msg)
click to toggle source
# File lib/rundock/logger.rb, line 109 def formatted_message(severity, datetime, progname, msg) out = if @suppress_logging elsif !@show_header "%s\n" % [msg2str(msg)] elsif !@date_header "%5s: %s%s\n" % [ severity, ' ' * 2 * indent_depth, msg2str(msg) ] elsif @short_header "%s: %s%s\n" % [severity[0, 1], ' ' * 2 * indent_depth, msg2str(msg)] else "[%s] %5s: %s%s\n" % [ datetime.strftime('%Y-%m-%dT%H:%M:%S.%L'), severity, ' ' * 2 * indent_depth, msg2str(msg) ] end out end
indent() { || ... }
click to toggle source
# File lib/rundock/logger.rb, line 58 def indent add_indent yield ensure reduce_indent end
new_color(code) { || ... }
click to toggle source
# File lib/rundock/logger.rb, line 73 def new_color(code) prev_color = @color @color = code yield ensure @color = prev_color end
off_rec()
click to toggle source
# File lib/rundock/logger.rb, line 93 def off_rec @rec = false unless @lock end
on_rec()
click to toggle source
# File lib/rundock/logger.rb, line 89 def on_rec @rec = true unless @lock end
rec_lock()
click to toggle source
# File lib/rundock/logger.rb, line 97 def rec_lock @lock = true end
rec_unlock()
click to toggle source
# File lib/rundock/logger.rb, line 101 def rec_unlock @lock = false end
reduce_indent()
click to toggle source
# File lib/rundock/logger.rb, line 69 def reduce_indent @indent_depth -= 1 if @indent_depth > 0 end
simple_output(msg)
click to toggle source
# File lib/rundock/logger.rb, line 105 def simple_output(msg) puts msg2str(msg) end
Private Instance Methods
colorize(msg, severity)
click to toggle source
# File lib/rundock/logger.rb, line 146 def colorize(msg, severity) col = @color || case severity when 'INFO' :clear when 'WARN' :yellow when 'ERROR' :red else :clear end ANSI.public_send(col) { msg } end
msg2str(msg)
click to toggle source
# File lib/rundock/logger.rb, line 135 def msg2str(msg) case msg when ::String msg when ::Exception "#{msg.message} (#{msg.class})\n" << (msg.backtrace || []).join("\n") else msg.inspect end end