Class: DogLog

Inherits:
Object show all
Defined in:
lib/dog_log.rb

Overview

Logging facility for the watchdog

Class Method Summary collapse

Class Method Details

.get_log_ioObject



35
36
37
38
39
40
41
42
# File 'lib/dog_log.rb', line 35

def get_log_io
  return @logfile if(@logfile.kind_of?(IO))
  if(Module.constants.member?(@logfile.upcase))
    const = Module.const_get(@logfile.upcase)
    return const if(const.kind_of?(IO))
  end
  File.open(@logfile, 'a')
end

.loggerObject

If nothing is configured, we log to STDERR by default



27
28
29
30
31
32
33
# File 'lib/dog_log.rb', line 27

def logger
  @logger ||= begin
    logger = Logger.new(get_log_io, 3)
    logger.level = @severity
    logger
  end
end

.setup(logfile, severity) ⇒ Object

Set the log file and severity. This will reset the current logger, but should not usually be called on an active log.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/dog_log.rb', line 10

def setup(logfile, severity)
  @logfile = logfile || STDERR
  @severity = if(severity)
    severity.is_a?(Fixnum) ? severity : Logger.const_get(severity.upcase)
  else
    Logger::DEBUG
  end
  if(@logger)
    assit_fail('Resetting logfile')
    @logger.close if(@logger.respond_to?(:close))
    @logger = nil
  end
rescue NameError => e
  raise(NameError, "Problems setting the log level: #{severity} (#{e.message})")
end