fix: use os.path.exists check for /dev/log instead of dead-code OSError catch
This commit is contained in:
+11
-15
@@ -15,6 +15,7 @@ import socket
|
|||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
from hashlib import md5
|
from hashlib import md5
|
||||||
|
from logging.handlers import SysLogHandler
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, List, Optional
|
from typing import Dict, List, Optional
|
||||||
|
|
||||||
@@ -588,31 +589,23 @@ def daemonize(
|
|||||||
|
|
||||||
def _reconfigure_logging_for_daemon(log_level: int) -> None:
|
def _reconfigure_logging_for_daemon(log_level: int) -> None:
|
||||||
"""Replace StreamHandlers (now writing to /dev/null) with a SysLogHandler."""
|
"""Replace StreamHandlers (now writing to /dev/null) with a SysLogHandler."""
|
||||||
from logging.handlers import SysLogHandler
|
|
||||||
|
|
||||||
root = logging.getLogger()
|
root = logging.getLogger()
|
||||||
for handler in root.handlers[:]:
|
for handler in root.handlers[:]:
|
||||||
root.removeHandler(handler)
|
root.removeHandler(handler)
|
||||||
handler.close()
|
handler.close()
|
||||||
|
|
||||||
try:
|
use_udp_fallback = not os.path.exists("/dev/log")
|
||||||
syslog_handler = SysLogHandler(
|
|
||||||
address="/dev/log",
|
if use_udp_fallback:
|
||||||
facility=SysLogHandler.LOG_DAEMON,
|
|
||||||
)
|
|
||||||
except OSError:
|
|
||||||
syslog_handler = SysLogHandler(
|
syslog_handler = SysLogHandler(
|
||||||
address=("localhost", 514),
|
address=("localhost", 514),
|
||||||
facility=SysLogHandler.LOG_DAEMON,
|
facility=SysLogHandler.LOG_DAEMON,
|
||||||
)
|
)
|
||||||
# Attach the fallback first so the warning reaches syslog
|
else:
|
||||||
syslog_handler.setFormatter(
|
syslog_handler = SysLogHandler(
|
||||||
logging.Formatter("hbc[%(process)d]: %(name)s %(levelname)s: %(message)s")
|
address="/dev/log",
|
||||||
|
facility=SysLogHandler.LOG_DAEMON,
|
||||||
)
|
)
|
||||||
root.addHandler(syslog_handler)
|
|
||||||
root.setLevel(log_level)
|
|
||||||
logging.warning("/dev/log not found, using syslog UDP localhost:514")
|
|
||||||
return
|
|
||||||
|
|
||||||
syslog_handler.setFormatter(
|
syslog_handler.setFormatter(
|
||||||
logging.Formatter("hbc[%(process)d]: %(name)s %(levelname)s: %(message)s")
|
logging.Formatter("hbc[%(process)d]: %(name)s %(levelname)s: %(message)s")
|
||||||
@@ -620,6 +613,9 @@ def _reconfigure_logging_for_daemon(log_level: int) -> None:
|
|||||||
root.addHandler(syslog_handler)
|
root.addHandler(syslog_handler)
|
||||||
root.setLevel(log_level)
|
root.setLevel(log_level)
|
||||||
|
|
||||||
|
if use_udp_fallback:
|
||||||
|
logging.warning("/dev/log not found, using syslog UDP localhost:514")
|
||||||
|
|
||||||
|
|
||||||
def build_parser():
|
def build_parser():
|
||||||
"""Build argument parser."""
|
"""Build argument parser."""
|
||||||
|
|||||||
Reference in New Issue
Block a user