Skip to content

Commit

Permalink
gh-98307: Add docstring and documentation for SysLogHandler.createSoc…
Browse files Browse the repository at this point in the history
…ket (GH-98319)

Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
  • Loading branch information
vsajip and CAM-Gerlach authored Oct 16, 2022
1 parent 7b48d02 commit f6b1e40
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
11 changes: 11 additions & 0 deletions Doc/library/logging.handlers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,17 @@ supports sending logging messages to a remote or local Unix syslog.

Closes the socket to the remote host.

.. method:: createSocket()

Tries to create a socket and, if it's not a datagram socket, connect it
to the other end. This method is called during handler initialization,
but it's not regarded as an error if the other end isn't listening at
this point - the method will be called again when emitting an event, if
but it's not regarded as an error if the other end isn't listening yet
--- the method will be called again when emitting an event,
if there is no socket at that point.

.. versionadded:: 3.11

.. method:: emit(record)

Expand Down
9 changes: 8 additions & 1 deletion Lib/logging/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -891,14 +891,21 @@ def _connect_unixsocket(self, address):
raise

def createSocket(self):
"""
Try to create a socket and, if it's not a datagram socket, connect it
to the other end. This method is called during handler initialization,
but it's not regarded as an error if the other end isn't listening yet
--- the method will be called again when emitting an event,
if there is no socket at that point.
"""
address = self.address
socktype = self.socktype

if isinstance(address, str):
self.unixsocket = True
# Syslog server may be unavailable during handler initialisation.
# C's openlog() function also ignores connection errors.
# Moreover, we ignore these errors while logging, so it not worse
# Moreover, we ignore these errors while logging, so it's not worse
# to ignore it also here.
try:
self._connect_unixsocket(address)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
A :meth:`~logging.handlers.SysLogHandler.createSocket` method was added to
:class:`~logging.handlers.SysLogHandler`.

0 comments on commit f6b1e40

Please sign in to comment.