From 65ceb31d8d5980204b8d744821034cadd563618e Mon Sep 17 00:00:00 2001 From: Andreas Wrede Date: Sat, 25 Apr 2026 16:36:00 +0200 Subject: [PATCH] fix: use os.path.exists check for /dev/log instead of dead-code OSError catch --- hbd/client/main.py | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/hbd/client/main.py b/hbd/client/main.py index 3101ef1..f519fbd 100644 --- a/hbd/client/main.py +++ b/hbd/client/main.py @@ -15,6 +15,7 @@ import socket import sys import time from hashlib import md5 +from logging.handlers import SysLogHandler from pathlib import Path from typing import Dict, List, Optional @@ -588,31 +589,23 @@ def daemonize( def _reconfigure_logging_for_daemon(log_level: int) -> None: """Replace StreamHandlers (now writing to /dev/null) with a SysLogHandler.""" - from logging.handlers import SysLogHandler - root = logging.getLogger() for handler in root.handlers[:]: root.removeHandler(handler) handler.close() - try: - syslog_handler = SysLogHandler( - address="/dev/log", - facility=SysLogHandler.LOG_DAEMON, - ) - except OSError: + use_udp_fallback = not os.path.exists("/dev/log") + + if use_udp_fallback: syslog_handler = SysLogHandler( address=("localhost", 514), facility=SysLogHandler.LOG_DAEMON, ) - # Attach the fallback first so the warning reaches syslog - syslog_handler.setFormatter( - logging.Formatter("hbc[%(process)d]: %(name)s %(levelname)s: %(message)s") + else: + syslog_handler = SysLogHandler( + 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( 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.setLevel(log_level) + if use_udp_fallback: + logging.warning("/dev/log not found, using syslog UDP localhost:514") + def build_parser(): """Build argument parser."""