46 lines
1.3 KiB
Python
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")
|