import sys
from loguru import logger
from .config import settings
def setup_logging():
"""
Настраивает Loguru для вывода в консоль и в файл с ротацией.
"""
logger.remove() # Сначала удаляем стандартный обработчик
# Настраиваем логирование в консоль (stderr) с цветом
logger.add(
sys.stderr,
level=settings.LOG_LEVEL.upper(),
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}",
colorize=True
)
# Настраиваем логирование в файл
logger.add(
"metrics.log", # Имя файла
level=settings.LOG_LEVEL.upper(),
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function} - {message}",
rotation="1 MB", # Ротация, когда файл достигнет 1 MB
compression="zip", # Сжимать старые файлы логов в zip
enqueue=True, # Делает запись безопасной для многопоточности
backtrace=True, # Показывает полный стектрейс при ошибках
diagnose=True # Добавляет полезную информацию для отладки ошибок
)