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