Class: Hive::Log
- Inherits:
-
Object
- Object
- Hive::Log
- Defined in:
- lib/hive/log.rb
Overview
Hive logging Allow logging to be written to multiple locations.
Instance Method Summary collapse
-
#add_logger(stream, level) ⇒ Object
Add a new log location:.
-
#initialize(args = []) ⇒ Log
constructor
Create the logger:.
-
#stop_logger(stream) ⇒ Object
Stop a log stream:.
Constructor Details
#initialize(args = []) ⇒ Log
22 23 24 25 26 27 |
# File 'lib/hive/log.rb', line 22 def initialize(args = []) @loggers = {} args.each do |l| add_logger(l[:stream], l[:level]) end end |
Instance Method Details
#add_logger(stream, level) ⇒ Object
Add a new log location:
# INFO level log to 'Filename.log'
log.add_logger( 'Filename.log', 'INFO' )
# DEBUG level log to standard output
log.add_logger( STDOUT, 'DEBUG' )
35 36 37 38 39 40 41 42 |
# File 'lib/hive/log.rb', line 35 def add_logger(stream, level) log = MonoLogger.new(stream) log.formatter = proc do |severity, datetime, _progname, msg| "#{severity[0, 1]} #{datetime.strftime('%Y-%m-%d %H:%M:%S')}: #{msg}\n" end log.level = MonoLogger.const_get(level) @loggers[stream] = log end |
#stop_logger(stream) ⇒ Object
Stop a log stream:
# Stop the log to standard output
log.stop_logger( STDOUT )
# Stop the log to 'Filename.log'
log.stop_logger( 'Filename.log' )
50 51 52 |
# File 'lib/hive/log.rb', line 50 def stop_logger(stream) @loggers.delete(stream) end |