logging question
Peter Otten
__peter__ at web.de
Thu Oct 28 09:43:14 EDT 2004
Neal D. Becker wrote:
> Why isn't my formatter used when I use DatagramHandler?
I'd say your formatting efforts happen on the wrong end of the connection.
What is actually sent are LogRecord objects, not formatted messages. This
gives you more flexibility, as you can add as many handlers (possibly with
different formatters) as you may wish. Below is a modification of your
"server" along these lines:
#!/usr/bin/env python
import socket
import logging
import pickle
sock = socket.socket (socket.AF_INET, socket.SOCK_DGRAM)
sock.bind (("", 8881))
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s
%(message)s'))
logger = logging.getLogger("fromFarAway")
logger.addHandler(handler)
try:
while True:
data, address = sock.recvfrom(8192)
rec = logging.makeLogRecord(pickle.loads(data[4:]))
logger.handle(rec)
finally:
sock.close()
Whether there is a way to automatically replicate a logger hierarchy I don't
know.
Peter
More information about the Python-list
mailing list