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 a debug message.
# File lib/webgen/logger.rb, line 87
87: def debug(source='', &block); log(:debug, source, &block); end
Utiltity method for logging an error message.
# File lib/webgen/logger.rb, line 78
78: def error(source='', &block); log(:error, source, &block); 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
The severity threshold level.
# File lib/webgen/logger.rb, line 57
57: def level
58: @logger.level
59: end
Set the severity threshold to value which can be one of the stdlib Logger severity levels.
# File lib/webgen/logger.rb, line 62
62: def level=(value)
63: @logger.level = value
64: 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 # 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
Only used when # is +false: Mark the location in the log stream where a new update/write run begins.
# File lib/webgen/logger.rb, line 50
50: def mark_new_cycle
51: if !@sync
52: @marks << @logio.string.length
53: end
54: 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
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.