From b5356e5192230b0a45de386020bcbee70c3cb47b Mon Sep 17 00:00:00 2001 From: MarcusStill <69536339+MarcusStill@users.noreply.github.com> Date: Sat, 12 Sep 2026 03:31:05 +0000 Subject: [PATCH] fix: ensure loguru immediately flushes buffers to disk Added buffering=1 to loguru configuration to enforce line-buffering so that asynchronous enqueue=True does not delay writing to the disk. Added logger.complete() at shutdown and uncaught exception handler to flush pending logs before exiting. Also added optional reading of 'log_level' from config.ini. --- main.py | 8 ++++++-- modules/config.py | 3 +++ modules/system.py | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index c7f54d0..0f25a04 100644 --- a/main.py +++ b/main.py @@ -55,7 +55,8 @@ system = System() config_data = system.config -logger.add(system.log_file, rotation="1 MB", enqueue=True) +_log_level = system.log_level.upper() if system.log_level else "DEBUG" +logger.add(system.log_file, rotation="1 MB", enqueue=True, buffering=1, level=_log_level) def handle_uncaught_exception(exc_type, exc_value, exc_traceback): @@ -66,6 +67,7 @@ def handle_uncaught_exception(exc_type, exc_value, exc_traceback): logger.opt(exception=(exc_type, exc_value, exc_traceback)).error( "Неперехваченное исключение" ) + logger.complete() sys.excepthook = handle_uncaught_exception @@ -3559,4 +3561,6 @@ class Payment: auth = AuthForm() auth.show() auth.ui.label_9.setText(system.database) - sys.exit(app.exec()) + exit_code = app.exec() + logger.complete() + sys.exit(exit_code) diff --git a/modules/config.py b/modules/config.py index 3cb0a17..ff18e28 100644 --- a/modules/config.py +++ b/modules/config.py @@ -122,6 +122,9 @@ def load_config(self): ) config_data[key] = config.get(section, key) + # Чтение необязательных параметров + if config.has_option("OTHER", "log_level"): + config_data["log_level"] = config.get("OTHER", "log_level") return config_data except (NoSectionError, NoOptionError) as e: diff --git a/modules/system.py b/modules/system.py index 34c8fdf..0c5b9b2 100644 --- a/modules/system.py +++ b/modules/system.py @@ -38,6 +38,7 @@ def __init__(self): self.user = self.config.get("user") self.software_version = self.config.get("version") self.log_file = self.config.get("log_file") + self.log_level = self.config.get("log_level") # Информация о РМ self.kol_pc = int(self.config.get("kol")) self.pcs = self.config.pcs # список рабочих станций