logexample.py使用logging.handlers.datagramhandler在网络上进行日志记录,它对发送的数据进行pickle(协议1)。
logserver.py应该取消点击并打印到屏幕上,但它会引发一个错误。如果我使用pickle.loads,则键错误:“\x00”,如果我使用cpickle.loads,则它是一个eoferror
文件在这里-
http://gist.github.com/542543
python版本2.6.5
为什么会这样?
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
对于任何可能感兴趣的人,这里是固定处理程序
class LogHandler(SocketServer.BaseRequestHandler):
def handle(self):
data = self.request[0]
socket = self.request[1]
out = pickle.loads(data[4:])
record = logging.makeLogRecord(out)
print record.msg