Module: Logging

Overview

enable logging in classes through ‘include Logging’

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configure_logger_for(classname) ⇒ Object



16
17
18
19
20
21
# File 'lib/evoc/logger.rb', line 16

def configure_logger_for(classname)
  logger = Logger.new('evoc.log','daily')
  logger.progname = classname
  logger.level = const_get('Logger::'+@logger_level.upcase)
  logger
end

.logger_for(classname) ⇒ Object



12
13
14
# File 'lib/evoc/logger.rb', line 12

def logger_for(classname)
  @loggers[classname] ||= configure_logger_for(classname)
end

.set_level(level) ⇒ Object



23
24
25
26
27
28
29
30
31
32
# File 'lib/evoc/logger.rb', line 23

def set_level(level)
  possible_levels = %w(debug info warn error info)
  if possible_levels.include?(level)
    STDERR.puts "Logging level has been set to '#{level}' for output to evoc.log"
    @loggers.each {|l| l.level = const_get('Logger::'+level.upcase)}
    @logger_level = level
  else
    STDERR.puts "Unable to set logger level to #{level}, possible values are #{possible_levels}. Defaulting to 'info'."
  end
end

Instance Method Details

#loggerObject



3
4
5
# File 'lib/evoc/logger.rb', line 3

def logger
  @logger ||= Logging.logger_for(self.class.name)
end