module DogTrainer::Logging
module to setup logging per-class throughout DogTrainer
Attributes
formatter[R]
@!attribute [r] formatter
@api private @return [Log4r::Formatter]
level[R]
@!attribute [r] level
@return [Integer] The current log level. Lower numbers correspond to more verbose log levels.
outputter[R]
@!attribute [r] outputter
@api private @return [Log4r::Outputter]
Public Class Methods
debug_formatter()
click to toggle source
Return a new log formatter with the debug-level pattern
@return [Log4r::PatternFormatter]
# File lib/dogtrainer/logging.rb, line 67 def debug_formatter Log4r::PatternFormatter.new(pattern: '[%d - %C - %l] %m') end
default_formatter()
click to toggle source
Return a new log formatter with the default pattern
@return [Log4r::PatternFormatter]
# File lib/dogtrainer/logging.rb, line 60 def default_formatter Log4r::PatternFormatter.new(pattern: '%l\t -> %m') end
default_outputter()
click to toggle source
Return the default log outputter (console)
@return [Log4r::StderrOutputter]
# File lib/dogtrainer/logging.rb, line 74 def default_outputter Log4r::StderrOutputter.new 'console' end
level=(level)
click to toggle source
Set the logger level and the output formatter
# File lib/dogtrainer/logging.rb, line 31 def level=(level) outputter.level = level @level = level outputter.formatter = if level < Log4r::INFO debug_formatter else default_formatter end end
Public Instance Methods
logger()
click to toggle source
Return a logger for the current class
@return [Log4r::Logger]
# File lib/dogtrainer/logging.rb, line 16 def logger if @logger.nil? name = logger_name if Log4r::Logger[name] @logger = Log4r::Logger[name] else @logger = Log4r::Logger.new(name) @logger.add(DogTrainer::Logging.outputter) end end @logger end
logger_name()
click to toggle source
Return the name of the class this logger is part of
@return [String] logger class name
# File lib/dogtrainer/logging.rb, line 9 def logger_name self.class.to_s end