On Apr 27, 5:41 pm, Peter Otten <__pete...@web.de> wrote: > The Problem is that as of Python 2.7logging.LogRecord has become a newstyle > class which is pickled/unpickled differently. I don't know if there is an > official way to do the conversion, but here's what I've hacked up. > The script can read pickles written with 2.6 in 2.7, but not the other way > round. > [code snipped]
I don't know about "official", but another way of doing this is to pickle just the LogRecord's __dict__ and send that over the wire. The logging package contains a function makeLogRecord(d) where d is a dict. This is the approach used by the examples in the library documentation which pickle events for sending across a network: http://docs.python.org/howto/logging-cookbook.html#sending-and-receiving-logging-events-across-a-network The built-in SocketHandler pickles the LogRecord's __dict__ rather than the LogRecord itself, precisely because of the improved interoperability over pickling the instance directly. Regards, Vinay Sajip -- http://mail.python.org/mailman/listinfo/python-list