Module: ActiveLogger::Logging

Defined in:
lib/active_logger/logging.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.new(*args, &block) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/active_logger/logging.rb', line 12

def new(*args, &block)
  # extract options
  options = args.last.is_a?(Hash) ? args.pop : {}

  reset!

  self.formatter = options.delete(:formatter) if options[:formatter]
  self.level = options.delete(:level) if options[:level]
  self.progname = options.delete(:progname) if options[:progname]
  self.name = options.delete(:name) if options[:name]

  if block_given?
    block.arity.positive? ? block.call(self) : instance_eval(&block)
  else
    type = args.first
    appender(type, options)
  end

  assign_appenders = appenders.drop(1)
  loggers = assign_appenders.inject(appenders[0]) { |appender, acc| acc.extend(ActiveSupport::Logger.broadcast(appender)) }
  logger = TaggedLogging.new(loggers)
  ActiveLogger::Repository[name] = logger unless autogenerated_name?
  logger
end