class Bricolage::Logger
Constants
- DEFAULT_ROTATION_SIZE
Public Class Methods
default()
click to toggle source
# File lib/bricolage/logger.rb, line 17 def Logger.default @default ||= new end
intern_severity(sev)
click to toggle source
# File lib/bricolage/logger.rb, line 8 def Logger.intern_severity(sev) if sev.kind_of?(Integer) sev else SEV_LABEL.index(sev.to_s.upcase) or raise ParameterError, "no such log level: #{sev}" end end
new(device: $stderr, rotation_period: nil, rotation_size: DEFAULT_ROTATION_SIZE)
click to toggle source
Calls superclass method
# File lib/bricolage/logger.rb, line 23 def Logger.new(device: $stderr, rotation_period: nil, rotation_size: DEFAULT_ROTATION_SIZE) logger = super(device, (rotation_period || 0), rotation_size) logger.level = (device == $stderr && $stderr.tty?) ? Logger::DEBUG : Logger::INFO logger.formatter = -> (sev, time, prog, msg) { "#{time}: #{sev}: #{msg}\n" } logger end
Public Instance Methods
elapsed_time(label, t)
click to toggle source
# File lib/bricolage/logger.rb, line 50 def elapsed_time(label, t) info "#{label}#{pretty_interval(t)}" end
exception(ex)
click to toggle source
# File lib/bricolage/logger.rb, line 32 def exception(ex) buf = StringIO.new buf.puts "#{ex.class}: #{ex.message}" ex.backtrace.each do |trace| buf.puts "\t" + trace end error buf.string end
with_elapsed_time(label = '') { || ... }
click to toggle source
# File lib/bricolage/logger.rb, line 41 def with_elapsed_time(label = '') start_time = Time.now begin return yield ensure elapsed_time(label, Time.now - start_time) end end
Private Instance Methods
pretty_interval(seconds)
click to toggle source
# File lib/bricolage/logger.rb, line 56 def pretty_interval(seconds) case when seconds > 60 * 60 h, secs = seconds.divmod(60 * 60) m, s = secs.divmod(60) "%d hours %d minutes" % [h, m] when seconds > 60 "%d minutes %d seconds" % seconds.divmod(60) else "%.2f secs" % seconds end end