On Sat, 2007-09-08 at 18:52 +0200, Torsten Bronger wrote: > Hallöchen! > > Is there a portable and simply way to direct file-like IO to simply > nothing? I try to implement some sort of NullLogging by saying > > --8<---------------cut here---------------start------------->8--- > import logging > if options.logging: > logging.basicConfig(level=logging.DEBUG, filename=options.logfile, > filemode="w", > format='%(asctime)s %(name)s %(levelname)s > %(message)s') > else: > # redirect logging to a memory buffer in order to simply ignore it. > import StringIO > logging.basicConfig(stream=StringIO.StringIO()) > --8<---------------cut here---------------end--------------->8--- > > However, this consumes memory. Is there a better way?
This might work: class LogSink(object): def write(self, *args, **kwargs): pass def flush(self, *args, **kwargs): pass logging.basicConfig(stream=LogSink()) I haven't tested this thoroughly, so it's possible that there are more methods that the stream is expected to implement. HTH, -- Carsten Haese http://informixdb.sourceforge.net -- http://mail.python.org/mailman/listinfo/python-list