class Innate::LogHub
Innate only provides logging via stdlib Logger to avoid bloat and dependencies, you may specify multiple loggers in the Log instance of LogHub to accomendate your needs, by default we log to $stderr to be compatible with CGI.
Please read the documentation of logger.rb (or even better, its source) to get a feeling of how to use it correctly within Innate
A few shortcuts:
-
Create logger for stderr/stdout
logger = Logger.new($stdout) logger = Logger.new($stderr)
-
Create logger for a file
logger = Logger.new('test.log')
-
Create logger for file object
file = File.open('test.log', 'a+') logger = Logger.new(file)
-
Create logger with rotation on specified file size
# 10 files history, 5 MB each logger = Logger.new('test.log', 10, (5 << 20)) # 100 files history, 1 MB each logger = Logger.new('test.log', 100, (1 << 20))
-
Create a logger which ages logfiles daily/weekly/monthly
logger = Logger.new('test.log', 'daily') logger = Logger.new('test.log', 'weekly') logger = Logger.new('test.log', 'monthly')
Attributes
active[RW]
loggers[RW]
program[RW]
Public Class Methods
new(*loggers)
click to toggle source
loggers
should be a list of Logger
instances
# File lib/innate/log/hub.rb, line 46 def initialize(*loggers) @loggers = loggers.flatten @program = nil @active = true self.level = DEBUG end
Public Instance Methods
level=(lvl)
click to toggle source
set level for all loggers
# File lib/innate/log/hub.rb, line 54 def level=(lvl) @loggers.each{|l| l.level = lvl } @level = lvl end
method_missing(meth, *args, &block)
click to toggle source
# File lib/innate/log/hub.rb, line 62 def method_missing(meth, *args, &block) eval %Q~ def #{meth}(*args, &block) return unless @active args.each{|arg| @loggers.each{|logger| logger.#{meth}(arg, &block) }} end ~ send(meth, *args, &block) end
start()
click to toggle source
# File lib/innate/log/hub.rb, line 59 def start; @active = true; end
stop()
click to toggle source
# File lib/innate/log/hub.rb, line 60 def stop; @active = false; end
write(*args)
click to toggle source
# File lib/innate/log/hub.rb, line 73 def write(*args) self.<<(*args) end