ollive-api / logging_config.py
Karthik Namboori
Deploy ollive FastAPI Docker Space
7b4b748
"""Central logging setup for CLI and app entrypoints."""
from __future__ import annotations
import logging
import os
import warnings
ALLOWED_LEVELS = {
"WARNING": logging.WARNING,
"ERROR": logging.ERROR,
"CRITICAL": logging.CRITICAL,
}
QUIET_LOGGER_NAMES = (
"httpx",
"httpcore",
"urllib3",
"transformers",
"datasets",
"huggingface_hub",
"filelock",
"gradio",
"openai",
"langchain",
"langchain_core",
"langchain_openai",
"evaluation",
"assistants",
"llm",
"memory",
)
def configure_logging(level: str | None = None, *, fmt: str | None = None) -> None:
"""Configure app logging to show only WARNING and ERROR by default."""
os.environ.setdefault("HF_HUB_DISABLE_PROGRESS_BARS", "1")
requested = (level or os.getenv("LOG_LEVEL", "WARNING")).upper()
log_level = ALLOWED_LEVELS.get(requested, logging.WARNING)
logging.basicConfig(
level=log_level,
format=fmt or "%(asctime)s | %(levelname)s | %(name)s | %(message)s",
force=True,
)
logging.getLogger().setLevel(log_level)
for name in QUIET_LOGGER_NAMES:
logging.getLogger(name).setLevel(log_level)
try:
from datasets.utils.logging import set_verbosity_warning
set_verbosity_warning()
import datasets
datasets.disable_progress_bars()
except ImportError:
pass
try:
from transformers.utils.logging import set_verbosity_warning
set_verbosity_warning()
except ImportError:
pass
warnings.filterwarnings("ignore", category=FutureWarning, module="transformers")
try:
from langchain_core._api.deprecation import LangChainDeprecationWarning
warnings.filterwarnings(
"ignore",
category=LangChainDeprecationWarning,
message=r".*\.text\(\).*",
)
except ImportError:
pass