diff --git a/src/core/logging_config.py b/src/core/logging_config.py
index 6b3b2ca..9fe42fd 100644
--- a/src/core/logging_config.py
+++ b/src/core/logging_config.py
@@ -25,7 +25,8 @@ def setup_logging(run_id: str, db_manager: Optional[DatabaseManager] = None):
"""Настраивает систему логирования проекта."""
#
log_format = '[%(asctime)s] [%(levelname)s] :: %(message)s'
-
+ handlers = []
+
#
# Создаем директорию для логов, если она не существует.
os.makedirs(settings.log_dir, exist_ok=True)
@@ -34,35 +35,36 @@ def setup_logging(run_id: str, db_manager: Optional[DatabaseManager] = None):
#
# Добавляем обработчик для записи логов в файл.
log_file_name = f"run_{run_id}.log"
- file_handler = logging.FileHandler(settings.log_dir / log_file_name)
+ file_handler = logging.FileHandler(settings.log_dir / log_file_name, mode='w', encoding='utf-8')
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(logging.Formatter(log_format))
-
- root_logger = logging.getLogger('')
- root_logger.addHandler(file_handler)
+ handlers.append(file_handler)
#
-
- logging.basicConfig(
- level=logging.DEBUG,
- format=log_format,
- datefmt='%Y-%m-%d %H:%M:%S',
- force=True # Перезаписывает любую существующую конфигурацию
- )
#
if settings.log_to_db and db_manager:
#
try:
- root_logger = logging.getLogger('')
db_handler = DatabaseLogHandler(db_manager, run_id)
db_handler.setLevel(logging.DEBUG)
db_handler.setFormatter(logging.Formatter(log_format))
- root_logger.addHandler(db_handler)
- logging.info("Обработчик логов для записи в ��азу данных успешно добавлен.")
+ handlers.append(db_handler)
except Exception as e:
- logging.error(f"Не удалось инициализировать обработчик логов для БД: {e}")
+ # Логирование еще не настроено, используем print для этой критической ошибки
+ print(f"Не удалось инициализировать обработчик логов для БД: {e}")
#
+ logging.basicConfig(
+ level=logging.DEBUG,
+ format=log_format,
+ datefmt='%Y-%m-%d %H:%M:%S',
+ handlers=handlers,
+ force=True # Перезаписывает любую существующую конфигурацию
+ )
+
+ if any(isinstance(h, DatabaseLogHandler) for h in handlers):
+ logging.info("Обработчик логов для записи в базу данных успешно добавлен.")
+
logging.info("Система логирования инициализирована.")
#
#
diff --git a/src/main.py b/src/main.py
index 57b029f..7c1696c 100644
--- a/src/main.py
+++ b/src/main.py
@@ -7,8 +7,10 @@
#
import sys
import logging
+from datetime import datetime
from orchestrator import AppOrchestrator
from core.settings import settings
+from core.logging_config import setup_logging
#
#
@@ -20,17 +22,15 @@ from core.settings import settings
# exceptions:
# - "ValueError: при ошибках в конфигурации."
# - "KeyboardInterrupt: при прерывании пользователем."
-# - "Exception: при любых других критических ошибках."
+# - "Exception: при любых других критических ошибка��."
#
#
def main():
"""Точка входа в приложение."""
#
- logging.basicConfig(
- level=logging.INFO,
- format='[%(asctime)s] [%(levelname)s] %(name)s: %(message)s',
- datefmt='%Y-%m-%d %H:%M:%S'
- )
+ run_id = datetime.now().strftime("%Y%m%d-%H%M%S")
+ setup_logging(run_id=run_id)
+
logger = logging.getLogger(__name__)
#