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")