29 lines
1.4 KiB
Python
29 lines
1.4 KiB
Python
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="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <level>{message}</level>",
|
||
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 # Добавляет полезную информацию для отладки ошибок
|
||
) |