Module: ActiveLogger::Logger

Defined in:
lib/active_logger/logger.rb

Overview

:nodoc:

Defined Under Namespace

Classes: AppenderNotFound, FilenameNotSpecified

Class Method Summary collapse

Class Method Details

.loggable(type, options = {}) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/active_logger/logger.rb', line 36

def loggable(type, options = {})
  parameters = []

  case type
  when :stdout, STDOUT
    parameters << STDOUT
  when :stderr, STDERR
    parameters << STDERR
  when String, Pathname
    parameters = [type.to_s, options[:keep], options[:size]]
  when :file
    raise FilenameNotSpecified if options[:filename].nil?

    parameters = [options[:filename], options[:keep], options[:size]]
  else
    raise AppenderNotFound
  end

  logger = ActiveSupport::Logger.new(*parameters)
  logger.level = level
  logger.formatter = formatter
  logger
end

.new(*args, &block) ⇒ Object



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

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

  reset!

  self.formatter = options[:formatter] unless options[:formatter].nil?
  self.level = options[:level] unless options[:level].nil?

  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)) }
  TaggedLogging.new(loggers)
end