class RootLogger
Attributes
meta[RW]
Public Class Methods
new(logdev = STDERR, &formatter)
click to toggle source
Calls superclass method
# File lib/unicorn-cuba-base/root_logger.rb, line 73 def initialize(logdev = STDERR, &formatter) super(logdev) @perf_enabled = false @ext_formatter = proc do |severity, datetime, progname, meta, msg| if formatter formatter.call(severity, datetime, progname, meta, msg) else "#{datetime.utc.strftime "%Y-%m-%d %H:%M:%S.%6N %Z"} #{meta.to_s} #{severity}: #{msg}\n" end end @meta = MetaData.new @meta['pid'] = $$ self.formatter = proc do |severity, datetime, progname, msg| @ext_formatter.call(severity, datetime, progname, @meta, msg) end end
Public Instance Methods
enable_perf_logging()
click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 94 def enable_perf_logging @perf_enabled = true self end
inspect()
click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 142 def inspect "#<RootLogger #{"0x%X" % object_id}>" end
logger_for(class_obj)
click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 107 def logger_for(class_obj) ClassLogger.new(self, class_obj) end
perf(msg)
click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 103 def perf(msg) unknown(msg) if @perf_enabled end
perf?()
click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 99 def perf? @perf_enabled end
root_logger()
click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 111 def root_logger self end
with_meta(hash)
click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 117 def with_meta(hash) n = self.dup n.meta = MetaData.new(@meta) n.meta.merge! hash # capture new meta hash with this new formatter proc - needed since old formatter proc will point to old object n.formatter = proc do |severity, datetime, progname, msg| @ext_formatter.call(severity, datetime, progname, n.meta, msg) end n end
with_meta_context(hash) { || ... }
click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 129 def with_meta_context(hash) old_meta = @meta new_meta = MetaData.new(old_meta) new_meta.merge! hash begin @meta = new_meta yield ensure @meta = old_meta end end