From d7232f0e4646803f0bbaede6e1fa124156135512 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Wed, 19 Jun 2019 07:42:35 -0700 Subject: [PATCH] bpo-37331: Clarify format of socket handler messages in the documentation. (GH-14234) (GH-14235) (cherry picked from commit f06b569305cf604f070776ea3f800ed61fdd7d61) --- Doc/library/logging.handlers.rst | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst index dee9a84e333..b48d50f9e9e 100644 --- a/Doc/library/logging.handlers.rst +++ b/Doc/library/logging.handlers.rst @@ -470,7 +470,12 @@ sends logging output to a network socket. The base class uses a TCP socket. .. method:: makePickle(record) Pickles the record's attribute dictionary in binary format with a length - prefix, and returns it ready for transmission across the socket. + prefix, and returns it ready for transmission across the socket. The + details of this operation are equivalent to:: + + data = pickle.dumps(record_attr_dict, 1) + datalen = struct.pack('>L', len(data)) + return datalen + data Note that pickles aren't completely secure. If you are concerned about security, you may want to override this method to implement a more secure @@ -481,8 +486,12 @@ sends logging output to a network socket. The base class uses a TCP socket. .. method:: send(packet) - Send a pickled string *packet* to the socket. This function allows for - partial sends which can happen when the network is busy. + Send a pickled byte-string *packet* to the socket. The format of the sent + byte-string is as described in the documentation for + :meth:`~SocketHandler.makePickle`. + + This function allows for partial sends, which can happen when the network + is busy. .. method:: createSocket() @@ -543,7 +552,8 @@ over UDP sockets. .. method:: send(s) - Send a pickled string to a socket. + Send a pickled byte-string to a socket. The format of the sent byte-string + is as described in the documentation for :meth:`SocketHandler.makePickle`. .. _syslog-handler: