lib/webgen/logging.rb in webgen-0.3.2 vs lib/webgen/logging.rb in webgen-0.3.3

- old
+ new

@@ -1,9 +1,9 @@ # #-- # -# $Id: logging.rb 203 2005-02-21 18:42:04Z thomas $ +# $Id: logging.rb 259 2005-04-21 10:37:47Z thomas $ # # webgen: template based static website generator # Copyright (C) 2004 Thomas Leitner # # This program is free software; you can redistribute it and/or modify it under the terms of the GNU @@ -19,25 +19,22 @@ # #++ # require 'logger' +require 'webgen/plugin' module Webgen class Logger < ::Logger - def initialize( dev ) - super( dev ) + def initialize( dev, files, size, level ) + super( dev, files, size ) self.datetime_format = "%Y-%m-%d %H:%M:%S" - self.level = Logger::ERROR + self.level = level end - def set_log_dev( dev ) - @logdev = LogDevice.new( dev ) - end - def format_message( severity, timestamp, msg, progname ) "%s %5s -- %s: %s\n" % [timestamp, severity, progname, msg ] end def warn( progname = nil, &block ) @@ -54,20 +51,51 @@ end class Object - LOGGER = Webgen::Logger.new( STDERR ) + @@logger = Webgen::Logger.new( STDERR, 0, 0, Logger::ERROR ) + def self.set_logger( logger ) + @@logger = logger + end + def logger - LOGGER + @@logger end end class Module def self.logger Object::LOGGER end + +end + +module Webgen + + class Logging < Plugin + + summary "Plugin for configuring the logger" + + add_param 'maxLogFiles', 10, 'The maximum number of log files' + add_param 'maxLogSize', 1024*1024, 'The maximum size of the log files' + add_param 'verbosityLevel', 2, 'The level of verbosity for the output of logging messages (0=DEBUG, 1=INFO, 2=WARNING 3=ERROR).', + lambda {|p,o,n| logger.level = n } + add_param 'logToFile', false, 'Specifies if the log messages should be put to the logfile', + (lambda do |p, o, n| + dev = STDERR + if n + Dir.mkdir( 'log' ) unless File.exists?( 'log' ) + dev = 'log/webgen.log' + end + Object.set_logger( Webgen::Logger.new( dev, get_param( 'maxLogFiles' ), get_param( 'maxLogSize' ), get_param( 'verbosityLevel') ) ) + end) + + end + + # Initialize single logging instance + Plugin.config[Logging].obj = Logging.new end