Nic Ferrier wrote:
Hello mod_python developers.I just joined this list (at the suggestion of Graham Dumpleton) to try and get you guys to consider adding some glue to connect python >2.2 logging to Apache's logging. This means adding a small extra source file to the mod_python codebase. Here's my example: # A log handler for mod-python import logging from mod_python import apache class ProxyLogThing: """A proxy for default Apache logging.""" def __init__(self): # No need to do anything. pass def log_error(msg, lvl): apache.log_error(msg, lvl) class ApacheLogHandler(logging.Handler): """A handler class which sends all logging to Apache.""" def __init__(self, ref = None): """ Initialize the handler (does nothing) """ logging.Handler.__init__(self) if ref == None: self.ref = ProxyLogThing() else: self.ref = ref # Set up the thing self.level_mapping = { } # self.level_mapping[logging.CRITICAL] = apache.APLOG_ERR self.level_mapping[logging.ERROR] = apache.APLOG_ERR self.level_mapping[logging.WARNING] = apache.APLOG_WARNING self.level_mapping[logging.INFO] = apache.APLOG_INFO self.level_mapping[logging.debug] = apache.APLOG_DEBUG def emit(self, record): """Emit a record.""" self.ref.log_error(record.msg, record.levelno) # End As far as I can see there is no reason not to do this: it does not create a dependency problem for anyone not using a Python without logging; it's use is purely optional. A very good reason for doing it is that it reduces dependancies for anyone wanting to do this (and it's a very obvious thing to want to do in any mod_python code). I wonder what you all think about this?
If the python logging module is meant to be the standard for logging then I'm not against it.
However I'm not sure it'll be as simple as Nic's code indicates. I don't want to expand on my concerns until I have a chance to do some testing but in the mean time perhaps Nic could give an example of his usage? (This is a trick question. ;) )
Regards, Jim
