mirror of
https://github.com/meshtastic/python.git
synced 2025-12-28 18:37:52 -05:00
clean up slog closing
This commit is contained in:
@@ -1108,9 +1108,10 @@ def common():
|
||||
meter.v = v
|
||||
meter.powerOn()
|
||||
|
||||
log_set = None
|
||||
if args.slog_out:
|
||||
# Setup loggers
|
||||
LogSet(client, args.slog_out if args.slog_out != 'default' else None, meter)
|
||||
log_set = LogSet(client, args.slog_out if args.slog_out != 'default' else None, meter)
|
||||
|
||||
have_tunnel = platform.system() == "Linux"
|
||||
if (
|
||||
@@ -1122,6 +1123,9 @@ def common():
|
||||
except KeyboardInterrupt:
|
||||
logging.info("Exiting due to keyboard interrupt")
|
||||
|
||||
if log_set:
|
||||
log_set.close()
|
||||
|
||||
# don't call exit, background threads might be running still
|
||||
# sys.exit(0)
|
||||
|
||||
|
||||
@@ -162,12 +162,17 @@ class LogSet:
|
||||
else:
|
||||
self.power_logger = None
|
||||
|
||||
# Store a lambda so we can find it again to unregister
|
||||
self.atexit_handler = lambda: self.close()
|
||||
atexit.register(self.close)
|
||||
|
||||
def close(self) -> None:
|
||||
"""Close the log set."""
|
||||
|
||||
logging.info(f"Closing slogs in {self.dir_name}")
|
||||
self.slog_logger.close()
|
||||
if self.power_logger:
|
||||
self.power_logger.close()
|
||||
if self.slog_logger:
|
||||
logging.info(f"Closing slogs in {self.dir_name}")
|
||||
atexit.unregister(self.atexit_handler) # docs say it will silently ignore if not found
|
||||
self.slog_logger.close()
|
||||
if self.power_logger:
|
||||
self.power_logger.close()
|
||||
self.slog_logger = None
|
||||
|
||||
Reference in New Issue
Block a user