
A month (!) ago, Vinay Sajip wrote:
I've uploaded my logging module, the proposed implementation for PEP 282, for committer review, to the SourceForge patch manager:
http://sourceforge.net/tracker/index.php?func=detail&aid=578494&group_id=5470&atid=305470
I've assigned it to Mark Hammond as (a) he had posted some comments to Trent Mick's original PEP posting, and (b) Barry Warsaw advised not assigning to PythonLabs people on account of their current workload.
Well, Mark was apparently too busy too. I've assigned this to myself and am making progress with the review.
The file logging.py is (apart from some test scripts) all that's supposed to go into Python 2.3. The file logging-0.4.6.tar.gz contains the module, an updated version of the PEP (which I mailed to Barry Warsaw on 26th June), numerous test/example scripts, TeX documentation etc. You can also refer to
http://www.red-dove.com/python_logging.html
Here's hoping for a speedy review :-)
Here's some feedback. In general the code looks good. Only one style nits: I prefer docstrings that have a one-line summary, then a blank line, and then a longer description. There's a lot of code there! Should it perhaps be broken up into different modules? Perhaps it should become a logging *package* with submodules that define the various filters and handlers. Some detailed questions: - Why does the FileHandler open the file with mode "a+" (and later with "w+")? The "+" makes the file readable, but I see no reason to read it. Am I missing? - setRollover(): the explanation isn't 100% clear. I *think* that you always write to "app.log", and when that's full, you rename it to app.log.1, and app.log.1 gets renamed to app.log.2, and so on, and then you start writing to a new app.log, right? - class SocketHandler: why set yourself up for buffer overflow by using only 2 bytes for the packet size? You can use the struct module to encode/decode this, BTW. I also wonder what the application for this is, BTW. - method send(): in Python 2.2 and later, you can use the sendall() socket method which takes care of this loop for you. - class DatagramHandler, method send(): I don't think UDP handles fragmented packets very well -- if you have to break the packet up, there's no guarantee that the receiver will see the parts in order (or even all of them). - fileConfig(): Is there documentation for the configuration file? That's it for now. --Guido van Rossum (home page: http://www.python.org/~guido/)