A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2004-August/048310.html below:

[Python-Dev] Proposed change to logging

[Python-Dev] Proposed change to loggingVinay Sajip vinay_sajip at yahoo.co.uk
Tue Aug 24 15:57:18 CEST 2004
An improvement to logging has been proposed by Miki
Tebeka, which involves the creation of file-like
wrapper objects for loggers. This makes it possible to
use the print idiom for logging:
 
import logging
 
logging.basicConfig()
logger = logging.getLogger("my.app")
err = logger.getFileObject(logging.ERROR)
dbg = logger.getFileObject(logging.DEBUG)
...
 
print >> err, "My logging message with %s" %
"arguments"
print >> dbg, "A message at %s level" % "debug"
 
Miki has helpfully sent in a patch (#1001864), and I
propose to check it in by the 27th of August. I just
wanted to get comments from python-dev first. There's
one wart in the implementation - to avoid printing out
blank lines caused by the "\n" appended by print, we
ignore messages which are == "\n". This works only
because print does a separate write for the "\n". Can
anyone see a problem with this approach?
 
class LoggerFileObject:
    """
    Simulate a 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
 
    def write(self, msg):
        """
        Write message to log.
        """
        if self.closed:
            raise ValueError("I/O operation on closed
file")
        # Avoid printing blank lines.
        if msg != "\n":
            self.logger.log(self.level, msg)
 
    def flush(self):
        """
        Flush the file object. This flushes the
logger's handlers.
        """
        if self.closed:
            return
        for handler in self.logger.handlers:
            handler.flush()
 
    def close(self):
        """
        Close file object.
 
        Calling "write" after "close" will raise a
ValueError.
        """
        self.closed = 1
 
Regards,
 
 
Vinay



	
	
		
___________________________________________________________ALL-NEW Yahoo! Messenger - all new features - even more fun!  http://uk.messenger.yahoo.com
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4