Class | Webgen::Logger |
In: |
lib/webgen/logger.rb
|
Parent: | Object |
The class used by a Website to do the logging and the normal output.
Create a new Logger object which uses outdev as output device. If sync is set to true, log messages are interspersed with normal output.
# File lib/webgen/logger.rb, line 19 19: def initialize(outdev=$stdout, sync=false) 20: @sync = sync 21: @outdev = outdev 22: @logger = (@sync ? ::Logger.new(@outdev) : ::Logger.new(@logio = StringIO.new)) 23: @logger.formatter = Proc.new do |severity, timestamp, progname, msg| 24: if self.level == ::Logger::DEBUG 25: "%5s -- %s: %s\n" % [severity, progname, msg ] 26: else 27: "%5s -- %s\n" % [severity, msg] 28: end 29: end 30: self.level = ::Logger::WARN 31: self.verbosity = :normal 32: @marks = [] 33: end
Utiltity method for logging an informational message.
# File lib/webgen/logger.rb, line 84 84: def info(source='', &block); log(:info, source, &block); end
Log a message of sev_level from source. The mandatory block has to return the message.
# File lib/webgen/logger.rb, line 67 67: def log(sev_level, source='', &block) 68: if sev_level == :stdout 69: @outdev.write(block.call + "\n") if @verbosity == :normal || @verbosity == :verbose 70: elsif sev_level == :verbose 71: @outdev.write(block.call + "\n") if @verbosity == :verbose 72: else 73: @logger.send(sev_level, source, &block) 74: end 75: end
Returns the output of the logger when sync is false. Otherwise an empty string is returned.
# File lib/webgen/logger.rb, line 36 36: def log_output 37: if @sync 38: '' 39: else 40: out = @logio.string.dup 41: @marks.reverse.each_with_index do |mark, index| 42: out.insert(mark, " INFO -- Log messages for run #{@marks.length - index} are following\n") 43: end if out.length > 0 44: out 45: end 46: end
Utiltity method for writing a normal output message.
# File lib/webgen/logger.rb, line 90 90: def stdout(source='', &block); log(:stdout, source, &block); end