Method: MultiLogger.add_logger

Defined in:
lib/multi_logger.rb

.add_logger(name, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/multi_logger.rb', line 5

def add_logger(name, options={})
  name = name.to_s
  rails_logger_class = get_rails_logger_class()

  raise "'#{name}' is reserved in #{rails_logger_class} and can not be used as a log accessor name." if rails_logger_class.method_defined?(name)

  logger = Logger.new(*extract_options(name, options))
  rails_logger_class.class_eval do
    define_method name.to_sym do
      logger
    end
  end

  logger.formatter = options[:formatter] if options[:formatter]
  logger
end