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:
+13
-4
@@ -19,6 +19,7 @@ Usage:
|
|||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
|
import logging.handlers
|
||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
import sys
|
import sys
|
||||||
@@ -49,11 +50,19 @@ from pair_signals import produce_signal
|
|||||||
if hasattr(sys.stdout, "reconfigure"):
|
if hasattr(sys.stdout, "reconfigure"):
|
||||||
sys.stdout.reconfigure(encoding="utf-8")
|
sys.stdout.reconfigure(encoding="utf-8")
|
||||||
|
|
||||||
logging.basicConfig(
|
_LOG_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "logs")
|
||||||
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
|
os.makedirs(_LOG_DIR, exist_ok=True)
|
||||||
level=logging.INFO,
|
_log_file = os.path.join(_LOG_DIR, f"telegram_{datetime.now().strftime('%Y%m%d')}.log")
|
||||||
datefmt="%H:%M:%S",
|
|
||||||
|
_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("httpx").setLevel(logging.WARNING)
|
||||||
logging.getLogger("httpcore").setLevel(logging.WARNING)
|
logging.getLogger("httpcore").setLevel(logging.WARNING)
|
||||||
logger = logging.getLogger("telegram_bot")
|
logger = logging.getLogger("telegram_bot")
|
||||||
|
|||||||
Reference in New Issue
Block a user