Class: Logger::Logging::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/logger/logging/resolver.rb

Class Method Summary collapse

Class Method Details

.call(logger) ⇒ Object



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

def self.call logger
  if logger.is_a? ExtendedLogger
    logger
  elsif logger.is_a? Logger
    logdev = logger.instance_variable_get :@logdev
    device = logdev.dev
    if device.tty?
      new_logger = ColoredLogger.new device
    else
      new_logger = ExtendedLogger.new device
    end
    new_logger.level = logger.level
    new_logger.progname = logger.progname
    new_logger
  else
    raise ArgumentError, "could not resolve logger for #{logger.inspect}"
  end
end