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