Module: CMDx::LoggerProxy
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
-
#logger(task) ⇒ Logger
A logger configured with the task’s level/formatter.
Instance Method Details
#logger(task) ⇒ Logger
Returns 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 |