|
Nic Ferrier
nferrier at tapsellferrier.co.uk
Sun Oct 16 19:43:28 EDT 2005
Does mod_python have a standard interface between python logging and
Apache's logging?
I can't see one included in the dist. I know lots of other people have
written one. I've written one.
If there isn't one why isn't there one?
Nic Ferrier
PS for what it's worth here's mine:
# A log handler for mod-python
from mod_python import apache
import logging
class ProxyLogThing:
"""A proxy for default Apache logging."""
def __init__(self):
# No need to do anything.
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 = { logging.CRITICAL: apache.APLOG.CRIT,
logging.ERROR: apache.APLOG_ERR,
logging.WARNING: apache.APLOG_WARNING,
logging.INFO: apache.APLOG_INFO,
logging.debug: apache.APLOG_DEBUG }
def emit(self, record):
"""Emit a record."""
self.ref.log_error(record.msg, record.lvl)
# End
|