Обновил структуру и отладил, все работает
This commit is contained in:
40
src/basic_application/log_manager.py
Normal file
40
src/basic_application/log_manager.py
Normal file
@@ -0,0 +1,40 @@
|
||||
import logging
|
||||
from typing import Optional
|
||||
|
||||
|
||||
class LogManager:
|
||||
"""
|
||||
Управляет конфигурацией логирования приложения.
|
||||
Применяет конфигурацию из словаря с обработкой ошибок.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
self.logger = logging.getLogger(__name__)
|
||||
self._last_valid_config: Optional[dict] = None
|
||||
|
||||
def apply_config(self, config: dict) -> None:
|
||||
"""
|
||||
Применяет конфигурацию логирования из словаря.
|
||||
При ошибке восстанавливает последний валидный конфиг.
|
||||
|
||||
Args:
|
||||
config: Словарь с настройками логирования (из файла конфига)
|
||||
"""
|
||||
logging_config = config.get("log")
|
||||
if not logging_config:
|
||||
return
|
||||
|
||||
try:
|
||||
logging.config.dictConfig(logging_config)
|
||||
self._last_valid_config = logging_config
|
||||
self.logger.info("Logging configuration applied")
|
||||
except Exception as e:
|
||||
self.logger.error(f"Error applying logging config: {e}")
|
||||
|
||||
# Если был предыдущий валидный конфиг, восстанавливаем его
|
||||
if self._last_valid_config:
|
||||
try:
|
||||
logging.config.dictConfig(self._last_valid_config)
|
||||
self.logger.info("Previous logging configuration restored")
|
||||
except Exception as restore_error:
|
||||
self.logger.error(f"Error restoring previous config: {restore_error}")
|
||||
Reference in New Issue
Block a user