*** __init__.py.orig Mon Aug 2 11:29:30 2004 --- __init__.py Mon Aug 2 11:30:32 2004 *************** *** 846,851 **** --- 846,888 ---- # Logger classes and functions #--------------------------------------------------------------------------- + class LoggerFileObject: + """ + Simulate file object for a given logging level + """ + def __init__(self, logger, level): + """ + Initialize file object with logger and level + """ + self.logger = logger + self.level = level + self.closed = 0 + self.isatty = 0 + + def write(self, msg): + """ + Write message to log + """ + if self.closed: + raise ValueError("I/O operation on closed file") + self.logger.log(self.level, msg) + + def flush(self): + """ + Flush file object + """ + if self.closed: + return + for handler in self.logger.handlers: + handler.flush() + + def close(self): + """Close file object. + + Calling "write" after "close" will raise ValueError + """ + self.closed = 1 + class Logger(Filterer): """ Instances of the Logger class represent a single logging channel. A *************** *** 873,878 **** --- 910,918 ---- self.handlers = [] self.disabled = 0 + def getFileObject(self, level): + return LoggerFileObject(self, level) + def setLevel(self, level): """ Set the logging level of this logger.