Spaces:
Sleeping
Sleeping
| import logging | |
| import os | |
| import sys | |
| def _resolve_log_level() -> int: | |
| # Prefer app-specific env var; fallback keeps backward compatibility. | |
| level_name = (os.getenv("APP_LOG_LEVEL") or os.getenv("LOG_LEVEL") or "INFO") | |
| return getattr(logging, level_name.strip().upper(), logging.INFO) | |
| def _resolve_log_stream(): | |
| # stderr is usually captured most reliably by hosted runtimes. | |
| if (os.getenv("APP_LOG_STREAM") or "stderr").strip().lower() == "stdout": | |
| return sys.stdout | |
| return sys.stderr | |
| def configure_logging() -> None: | |
| level = _resolve_log_level() | |
| logging.basicConfig( | |
| level=level, | |
| format="%(asctime)s | %(levelname)s | %(name)s | %(message)s", | |
| stream=_resolve_log_stream(), | |
| force=True, | |
| ) | |
| # Ensure these loggers inherit the selected level in all runtimes. | |
| for logger_name in ( | |
| "src", | |
| "httpx", | |
| "mcp.client.streamable_http", | |
| "chromadb.telemetry.product.posthog", | |
| ): | |
| logging.getLogger(logger_name).setLevel(level) | |