I've been struggling with the logging module in the stdlib which seems to me rather counter-intuitive:
For some reason it refuses to recognize configuration options when they are set inside a class so I have had to initialize logging and set the configuration options in the global scope of my module with logging.basicConfig. Here's what I did within the class setup method: <snip> self.log = logging.getLogger() # format log_format= self.local.format date_format = self.local.date_format or "%d.%m.%y %H:%M:%S" self.logfile= self.local.logfile if self.local.log_to_file else None if self.logfile: handler = logging.FileHandler( self.logfile, self.local.logfile_mode) else: stream = None # can be sys.st something or other stream handler = logging.StreamHandler() format = logging.Formatter(log_format, date_format) handler.setFormatter(format) self.log.addHandler(handler) self.log.setLevel(self.local.log_level or logging.DEBUG) </snip> self.log gets initialized but the formatting options do not get recognized... this is a pain... What I do want is something like the log4r module in Ruby: e.g. require 'log4r' require 'getoptlong' require 'pathname' class Common def init_log @log = Log4r::Logger.new(self.class.name) @log.add Log4r::Outputter.stdout @log.info 'initialized' end end class Builder < Common def initialize(path, options) init_log if File.exist?(path) @path = Pathname.new(path) @options = options else @log.error "not a valid file or directory" exit end end def build() case @path.ftype when 'file' filehandlers = { '.txt' => TxtHandler, '.java' => JavaHandler, '.c' => CHandler, '.cpp' => CppHandler, '.py' => PyHandler, '.pyx' => PyxHandler, '.exe' => ExeHandler, '.hs' => HaskellHandler, '.rb' => RubyHandler, '.dot' => DotHandler, '.mp3' => MP3Handler, '.wav' => WavHandler, '.csd' => CSoundHandler, '.orc' => CSoundHandler, '.sco' => CSoundHandler, [EMAIL PROTECTED](@path, @options).handle() when 'directory' @log.info "[EMAIL PROTECTED] is a directory" end end end etc... still to prefer to code in python though.... Just my 2c... AK -- http://mail.python.org/mailman/listinfo/python-list