class RootLogger::ClassLogger

Attributes

root_logger[R]

Public Class Methods

new(root_logger, class_obj) click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 8
def initialize(root_logger, class_obj)
        @root_logger = root_logger
        @class_name = class_obj.name
end

Public Instance Methods

inspect() click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 43
def inspect
        "#<ClassLogger[#{@progname}] #{"0x%X" % object_id} root_logger=#{@root_logger.inspect}>"
end
method_missing(name, *args, &block) click to toggle source
# File lib/unicorn-cuba-base/root_logger.rb, line 17
def method_missing(name, *args, &block)
        if @@levels.include? name
                root_logger = @root_logger.with_meta('className' => @class_name)

                if block
                        root_logger.send(name, &block)
                else
                        message = args.first

                        if args.last.is_a? Exception
                                error = args.last
                                root_logger = root_logger.with_meta('exceptionClass' => error.class.name)
                                message = "#{message}: #{error.class.name}: #{error.message}\n#{error.backtrace.join("\n")}"
                        end

                        # log with class name
                        root_logger.send(name, message.chomp, &block)
                end
        else
                # forward to root logger
                @root_logger.send(name, *args, &block)
        end
end
respond_to?(method) click to toggle source
Calls superclass method
# File lib/unicorn-cuba-base/root_logger.rb, line 13
def respond_to?(method)
        super or @root_logger.respond_to? method
end