Files
telegram-helper-bot/logs/custom_logger.py
2026-02-01 23:03:23 +03:00

46 lines
1.3 KiB
Python

import datetime
import os
import sys
from loguru import logger
# Remove default handler
logger.remove()
# Check if running in Docker/container
is_container = os.path.exists("/.dockerenv") or os.getenv("DOCKER_CONTAINER") == "true"
if is_container:
# In container: log to stdout/stderr
logger.add(
sys.stdout,
format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {name} | {line} | {message}",
level=os.getenv("LOG_LEVEL", "INFO"),
colorize=True,
)
logger.add(
sys.stderr,
format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {name} | {line} | {message}",
level="ERROR",
colorize=True,
)
else:
# Local development: log to files
current_dir = os.path.dirname(os.path.abspath(__file__))
if not os.path.exists(current_dir):
os.makedirs(current_dir)
today = datetime.date.today().strftime("%Y-%m-%d")
filename = f"{current_dir}/helper_bot_{today}.log"
logger.add(
filename,
rotation="00:00",
retention=f"{os.getenv('LOG_RETENTION_DAYS', '30')} days",
format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {name} | {line} | {message}",
level=os.getenv("LOG_LEVEL", "INFO"),
)
# Bind logger name
logger = logger.bind(name="main_log")