Module: CMDx::LoggerProxy

Extended by:
LoggerProxy
Included in:
LoggerProxy
Defined in:
lib/cmdx/logger_proxy.rb

Overview

Returns a logger tailored to a task’s settings. If the task overrides ‘log_level` or `log_formatter`, the base logger is `dup`’d so those overrides don’t leak into sibling tasks sharing the same global logger.

Instance Method Summary collapse

Instance Method Details

#logger(task) ⇒ Logger

Returns a logger configured with the task’s level/formatter.

Parameters:

Returns:

  • (Logger)

    a logger configured with the task’s level/formatter



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/cmdx/logger_proxy.rb', line 13

def logger(task)
  settings  = task.class.settings
  logger    = settings.logger
  level     = settings.log_level
  formatter = settings.log_formatter

  change_level     = level && level != logger.level
  change_formatter = formatter && !logger.formatter.equal?(formatter)
  return logger unless change_level || change_formatter

  logger = logger.dup
  logger.level     = level     if change_level
  logger.formatter = formatter if change_formatter
  logger
end