mirror of
https://github.com/smittix/intercept.git
synced 2026-04-24 06:40:00 -07:00
Fix duplicate log messages and suppress SBS reconnection spam
- Add propagate=False to prevent child loggers from duplicating messages through parent handler - Only log SBS connection errors once until successful reconnect Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -47,6 +47,7 @@ adsb_last_message_time = None
|
|||||||
adsb_bytes_received = 0
|
adsb_bytes_received = 0
|
||||||
adsb_lines_received = 0
|
adsb_lines_received = 0
|
||||||
adsb_active_device = None # Track which device index is being used
|
adsb_active_device = None # Track which device index is being used
|
||||||
|
_sbs_error_logged = False # Suppress repeated connection error logs
|
||||||
|
|
||||||
# Track ICAOs already looked up in aircraft database (avoid repeated lookups)
|
# Track ICAOs already looked up in aircraft database (avoid repeated lookups)
|
||||||
_looked_up_icaos: set[str] = set()
|
_looked_up_icaos: set[str] = set()
|
||||||
@@ -101,7 +102,7 @@ def check_dump1090_service():
|
|||||||
|
|
||||||
def parse_sbs_stream(service_addr):
|
def parse_sbs_stream(service_addr):
|
||||||
"""Parse SBS format data from dump1090 SBS port."""
|
"""Parse SBS format data from dump1090 SBS port."""
|
||||||
global adsb_using_service, adsb_connected, adsb_messages_received, adsb_last_message_time, adsb_bytes_received, adsb_lines_received
|
global adsb_using_service, adsb_connected, adsb_messages_received, adsb_last_message_time, adsb_bytes_received, adsb_lines_received, _sbs_error_logged
|
||||||
|
|
||||||
host, port = service_addr.split(':')
|
host, port = service_addr.split(':')
|
||||||
port = int(port)
|
port = int(port)
|
||||||
@@ -109,6 +110,7 @@ def parse_sbs_stream(service_addr):
|
|||||||
logger.info(f"SBS stream parser started, connecting to {host}:{port}")
|
logger.info(f"SBS stream parser started, connecting to {host}:{port}")
|
||||||
adsb_connected = False
|
adsb_connected = False
|
||||||
adsb_messages_received = 0
|
adsb_messages_received = 0
|
||||||
|
_sbs_error_logged = False
|
||||||
|
|
||||||
while adsb_using_service:
|
while adsb_using_service:
|
||||||
try:
|
try:
|
||||||
@@ -116,6 +118,7 @@ def parse_sbs_stream(service_addr):
|
|||||||
sock.settimeout(SBS_SOCKET_TIMEOUT)
|
sock.settimeout(SBS_SOCKET_TIMEOUT)
|
||||||
sock.connect((host, port))
|
sock.connect((host, port))
|
||||||
adsb_connected = True
|
adsb_connected = True
|
||||||
|
_sbs_error_logged = False # Reset so we log next error
|
||||||
logger.info("Connected to SBS stream")
|
logger.info("Connected to SBS stream")
|
||||||
|
|
||||||
buffer = ""
|
buffer = ""
|
||||||
@@ -242,7 +245,9 @@ def parse_sbs_stream(service_addr):
|
|||||||
adsb_connected = False
|
adsb_connected = False
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
adsb_connected = False
|
adsb_connected = False
|
||||||
logger.warning(f"SBS connection error: {e}, reconnecting...")
|
if not _sbs_error_logged:
|
||||||
|
logger.warning(f"SBS connection error: {e}, reconnecting...")
|
||||||
|
_sbs_error_logged = True
|
||||||
time.sleep(SBS_RECONNECT_DELAY)
|
time.sleep(SBS_RECONNECT_DELAY)
|
||||||
|
|
||||||
adsb_connected = False
|
adsb_connected = False
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ def get_logger(name: str) -> logging.Logger:
|
|||||||
handler.setFormatter(logging.Formatter(LOG_FORMAT))
|
handler.setFormatter(logging.Formatter(LOG_FORMAT))
|
||||||
logger.addHandler(handler)
|
logger.addHandler(handler)
|
||||||
logger.setLevel(LOG_LEVEL)
|
logger.setLevel(LOG_LEVEL)
|
||||||
|
logger.propagate = False # Prevent duplicate logs from parent handlers
|
||||||
return logger
|
return logger
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user