📝 Логирование + graceful shutdown
- Добавлен app/logger.py — loguru с ротацией (консоль, файл, ошибки) - main.py: логи старта/стопа, graceful shutdown (SIGTERM/SIGINT/stop_signal) - Все хендлеры: логирование ключевых действий пользователя - Логи сохраняются в logs/bot_YYYY-MM-DD.log, ротация 30 дней - Ошибки отдельно в logs/errors_*
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
"""Logging configuration for SPA Telegram Bot."""
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from loguru import logger
|
||||
|
||||
LOG_DIR = Path(__file__).resolve().parent.parent / "logs"
|
||||
LOG_DIR.mkdir(exist_ok=True)
|
||||
|
||||
# Remove default handler
|
||||
logger.remove()
|
||||
|
||||
# Console handler (INFO and above)
|
||||
logger.add(
|
||||
sys.stdout,
|
||||
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>",
|
||||
level="INFO",
|
||||
colorize=True,
|
||||
)
|
||||
|
||||
# File handler with rotation (DEBUG and above, keep 30 days)
|
||||
logger.add(
|
||||
LOG_DIR / "bot_{time:YYYY-MM-DD}.log",
|
||||
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
|
||||
level="DEBUG",
|
||||
rotation="1 day",
|
||||
retention="30 days",
|
||||
compression="gz",
|
||||
)
|
||||
|
||||
# Error-only file
|
||||
logger.add(
|
||||
LOG_DIR / "errors_{time:YYYY-MM-DD}.log",
|
||||
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
|
||||
level="ERROR",
|
||||
rotation="1 day",
|
||||
retention="90 days",
|
||||
compression="gz",
|
||||
)
|
||||
Reference in New Issue
Block a user