Class: EY::Enzyme::MultiLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/ey_enzyme/multi_logger.rb

Constant Summary collapse

SEVERITIES =
{
  :fatal => Logger::FATAL,
  :error => Logger::ERROR,
  :warn  => Logger::WARN,
  :info  => Logger::INFO,
  :debug => Logger::DEBUG,
}

Instance Method Summary collapse

Constructor Details

#initialize(log_file) ⇒ MultiLogger

Returns a new instance of MultiLogger.



12
13
14
15
# File 'lib/ey_enzyme/multi_logger.rb', line 12

def initialize(log_file)
  @enzyme_log = Logger.new(log_file)
  @stderr_log = Logger.new($stderr)
end

Instance Method Details

#debug(message) ⇒ Object



28
29
30
# File 'lib/ey_enzyme/multi_logger.rb', line 28

def debug(message)
  log(:debug, message)
end

#debug?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/ey_enzyme/multi_logger.rb', line 24

def debug?
  @level == :debug
end

#error(message) ⇒ Object



36
37
38
# File 'lib/ey_enzyme/multi_logger.rb', line 36

def error(message)
  log(:error, message)
end

#exception(message, e) ⇒ Object



40
41
42
43
44
# File 'lib/ey_enzyme/multi_logger.rb', line 40

def exception(message, e)
  message = "Got an exception: #{message}: #{e.class}: #{e.message}"
  error message
  debug e.backtrace.join("  \n")
end

#info(message) ⇒ Object



32
33
34
# File 'lib/ey_enzyme/multi_logger.rb', line 32

def info(message)
  log(:info, message)
end

#level=(level) ⇒ Object



17
18
19
20
21
22
# File 'lib/ey_enzyme/multi_logger.rb', line 17

def level=(level)
  @level = level
  raise "Invalid log level: #{level}" unless SEVERITIES[level]
  @enzyme_log.level = SEVERITIES[:debug]
  @stderr_log.level = SEVERITIES[level]
end

#log(level, message) ⇒ Object



46
47
48
49
# File 'lib/ey_enzyme/multi_logger.rb', line 46

def log(level, message)
  @stderr_log.send(level, message)
  @enzyme_log.send(level, message)
end