bpo-29808: Do not fail in SysLogHandler constructor if syslog isn't available. (#696)
bpo-29808: SysLogHandler: Do not fail if initial connect to syslog failed.
(cherry picked from commit 1b038e073807ecb6fd176edaf3386a8e3205416e)
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
index 7d77973..2356f8d 100644
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -815,7 +815,14 @@
if isinstance(address, str):
self.unixsocket = True
- self._connect_unixsocket(address)
+ # 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
+ # to ignore it also here.
+ try:
+ self._connect_unixsocket(address)
+ except OSError:
+ pass
else:
self.unixsocket = False
if socktype is None: