diff --git a/main.py b/main.py index c7f54d0..4135494 100644 --- a/main.py +++ b/main.py @@ -55,7 +55,17 @@ system = System() config_data = system.config -logger.add(system.log_file, rotation="1 MB", enqueue=True) + +log_level = config_data.get("log_level") +log_level = log_level.upper() if log_level else "DEBUG" + +logger.add( + system.log_file, + level=log_level, + rotation="1 MB", + enqueue=True, + buffering=1, +) def handle_uncaught_exception(exc_type, exc_value, exc_traceback): @@ -66,6 +76,10 @@ def handle_uncaught_exception(exc_type, exc_value, exc_traceback): logger.opt(exception=(exc_type, exc_value, exc_traceback)).error( "Неперехваченное исключение" ) + # logger.complete() - асинхронный метод. + # Для синхронной очистки логов нужно вызвать catch_exceptions/удалить обработчик + # logger.remove() синхронно сбрасывает все логи из очереди (enqueue=True) в файл. + logger.remove() sys.excepthook = handle_uncaught_exception @@ -3559,4 +3573,6 @@ class Payment: auth = AuthForm() auth.show() auth.ui.label_9.setText(system.database) - sys.exit(app.exec()) + ret = app.exec() + logger.remove() + sys.exit(ret) diff --git a/modules/config.py b/modules/config.py index 3cb0a17..8e911a5 100644 --- a/modules/config.py +++ b/modules/config.py @@ -122,6 +122,8 @@ 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: