Add file logging: write daily logs to logs/ directory

Uses TimedRotatingFileHandler with 30-day retention. Logs to both
console and logs/telegram_YYYYMMDD.log automatically on startup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
harwinder
2026-05-18 17:41:49 -04:00
parent 541ef7ff4a
commit d6c6333ffb
+13 -4
View File
@@ -19,6 +19,7 @@ Usage:
import asyncio
import logging
import logging.handlers
import os
import signal
import sys
@@ -49,11 +50,19 @@ from pair_signals import produce_signal
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8")
logging.basicConfig(
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
level=logging.INFO,
datefmt="%H:%M:%S",
_LOG_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "logs")
os.makedirs(_LOG_DIR, exist_ok=True)
_log_file = os.path.join(_LOG_DIR, f"telegram_{datetime.now().strftime('%Y%m%d')}.log")
_fmt = logging.Formatter("%(asctime)s [%(levelname)s] %(name)s: %(message)s", datefmt="%H:%M:%S")
_console = logging.StreamHandler()
_console.setFormatter(_fmt)
_file_handler = logging.handlers.TimedRotatingFileHandler(
_log_file, when="midnight", backupCount=30, encoding="utf-8",
)
_file_handler.setFormatter(_fmt)
logging.basicConfig(level=logging.INFO, handlers=[_console, _file_handler])
logging.getLogger("httpx").setLevel(logging.WARNING)
logging.getLogger("httpcore").setLevel(logging.WARNING)
logger = logging.getLogger("telegram_bot")