From 586c0502b5eb9a39cabe0bc2707a8ff63114265c Mon Sep 17 00:00:00 2001 From: Pablo Galindo Date: Thu, 7 Sep 2017 21:53:13 +0100 Subject: bpo-31294: Fix ZeroMQSocketListener and ZeroMQSocketHandler examples (#3229) * Fix ZeroMQSocketListener and ZeroMQSocketHandler examples * Use send_json and recv_json to simplify pyzmq interfacing * Add News entry --- Doc/howto/logging-cookbook.rst | 16 ++++++++-------- Misc/ACKS | 1 + .../2017-09-07-20-49-09.bpo-31294.WgI18w.rst | 2 ++ 3 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 Misc/NEWS.d/next/Documentation/2017-09-07-20-49-09.bpo-31294.WgI18w.rst diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst index 24cf76b..71ee417 100644 --- a/Doc/howto/logging-cookbook.rst +++ b/Doc/howto/logging-cookbook.rst @@ -1258,8 +1258,8 @@ socket is created separately and passed to the handler (as its 'queue'):: class ZeroMQSocketHandler(QueueHandler): def enqueue(self, record): - data = json.dumps(record.__dict__) - self.queue.send(data) + self.queue.send_json(record.__dict__) + handler = ZeroMQSocketHandler(sock) @@ -1272,11 +1272,10 @@ data needed by the handler to create the socket:: self.ctx = ctx or zmq.Context() socket = zmq.Socket(self.ctx, socktype) socket.bind(uri) - QueueHandler.__init__(self, socket) + super().__init__(socket) def enqueue(self, record): - data = json.dumps(record.__dict__) - self.queue.send(data) + self.queue.send_json(record.__dict__) def close(self): self.queue.close() @@ -1292,12 +1291,13 @@ of queues, for example a ZeroMQ 'subscribe' socket. Here's an example:: def __init__(self, uri, *handlers, **kwargs): self.ctx = kwargs.get('ctx') or zmq.Context() socket = zmq.Socket(self.ctx, zmq.SUB) - socket.setsockopt(zmq.SUBSCRIBE, '') # subscribe to everything + socket.setsockopt_string(zmq.SUBSCRIBE, '') # subscribe to everything socket.connect(uri) + super().__init__(socket, *handlers, **kwargs) def dequeue(self): - msg = self.queue.recv() - return logging.makeLogRecord(json.loads(msg)) + msg = self.queue.recv_json() + return logging.makeLogRecord(msg) .. seealso:: diff --git a/Misc/ACKS b/Misc/ACKS index eadc5d3..462a74e 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1561,6 +1561,7 @@ Martin Teichmann Gustavo Temple Mikhail Terekhov Victor TerrĂ³n +Pablo Galindo Richard M. Tew Tobias Thelen Christian Theune diff --git a/Misc/NEWS.d/next/Documentation/2017-09-07-20-49-09.bpo-31294.WgI18w.rst b/Misc/NEWS.d/next/Documentation/2017-09-07-20-49-09.bpo-31294.WgI18w.rst new file mode 100644 index 0000000..2c8f850 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2017-09-07-20-49-09.bpo-31294.WgI18w.rst @@ -0,0 +1,2 @@ +Fix incomplete code snippet in the ZeroMQSocketListener and +ZeroMQSocketHandler examples and adapt them to Python 3. -- cgit v0.12