Parent

Included Modules

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:

  1. Create logger for stderr/stdout

     logger = Logger.new($stdout)
     logger = Logger.new($stderr)
    
  2. Create logger for a file

     logger = Logger.new('test.log')
    
  3. Create logger for file object

     file = File.open('test.log', 'a+')
     logger = Logger.new(file)
    
  4. 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))
    
  5. 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

loggers[RW]
program[RW]
active[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
46:     def initialize(*loggers)
47:       @loggers = loggers.flatten
48:       @program = nil
49:       @active = true
50:       self.level = DEBUG
51:     end

Public Instance Methods

level=(lvl) click to toggle source

set level for all loggers

    # File lib/innate/log/hub.rb, line 54
54:     def level=(lvl)
55:       @loggers.each{|l| l.level = lvl }
56:       @level = lvl
57:     end
method_missing(meth, *args, &block) click to toggle source
    # File lib/innate/log/hub.rb, line 62
62:     def method_missing(meth, *args, &block)
63:       eval %
64:         def #{meth}(*args, &block)
65:           return unless @active
66:           args.each{|arg| @loggers.each{|logger| logger.#{meth}(arg, &block) }}
67:         end
68:       ~
69: 
70:       send(meth, *args, &block)
71:     end
start() click to toggle source
    # File lib/innate/log/hub.rb, line 59
59:     def start; @active = true;  end
stop() click to toggle source
    # File lib/innate/log/hub.rb, line 60
60:     def stop;  @active = false; end
write(*args) click to toggle source
    # File lib/innate/log/hub.rb, line 73
73:     def write(*args)
74:       self.<<(*args)
75:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.