Spaces:
Runtime error
Runtime error
| """Centralized logging for BabelCast Docker API. | |
| - Daily log files in /app/logs/ (or ./logs/ locally) | |
| - Console output (INFO) + file output (DEBUG) | |
| """ | |
| import logging | |
| import sys | |
| from datetime import datetime | |
| from pathlib import Path | |
| LOGS_DIR = Path("/app/logs") if Path("/app").exists() else Path(__file__).resolve().parent.parent / "logs" | |
| _initialized = False | |
| def setup_logging(level: int = logging.DEBUG) -> None: | |
| """Configure root logger with console + daily file handlers.""" | |
| global _initialized | |
| if _initialized: | |
| return | |
| _initialized = True | |
| LOGS_DIR.mkdir(parents=True, exist_ok=True) | |
| today = datetime.now().strftime("%Y-%m-%d") | |
| log_file = LOGS_DIR / f"gateway_{today}.log" | |
| root = logging.getLogger() | |
| root.setLevel(level) | |
| root.handlers.clear() | |
| fmt = logging.Formatter( | |
| "%(asctime)s [%(name)s] %(levelname)s: %(message)s", | |
| datefmt="%Y-%m-%d %H:%M:%S", | |
| ) | |
| console = logging.StreamHandler(sys.stdout) | |
| console.setLevel(logging.INFO) | |
| console.setFormatter(fmt) | |
| root.addHandler(console) | |
| file_handler = logging.FileHandler(log_file, encoding="utf-8") | |
| file_handler.setLevel(logging.DEBUG) | |
| file_handler.setFormatter(fmt) | |
| root.addHandler(file_handler) | |
| logging.getLogger().info("Logging initialized -> %s", log_file) | |