VAM / inference /logger.py
Pranav
init
f54e27b
Raw History Blame Contribute Delete
1.09 kB
"""
Shared logger for Yugensys Vision AI.
Writes to stdout (visible in HF Spaces / container logs) and to
logs/app.log so you can also inspect the file locally.
"""
import logging
import os
import sys
from pathlib import Path
_LOG_DIR = Path(__file__).parent.parent / "logs"
_LOG_DIR.mkdir(exist_ok=True)
_LOG_FILE = _LOG_DIR / "app.log"
def get_logger(name: str = "yugensys") -> logging.Logger:
logger = logging.getLogger(name)
if logger.handlers: # already configured — return as-is
return logger
logger.setLevel(logging.DEBUG)
fmt = logging.Formatter(
fmt="%(asctime)s %(levelname)-8s %(name)s — %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
# stdout handler — shows up in HF Spaces "Logs" tab
sh = logging.StreamHandler(sys.stdout)
sh.setLevel(logging.DEBUG)
sh.setFormatter(fmt)
logger.addHandler(sh)
# file handler — local inspection
fh = logging.FileHandler(_LOG_FILE, encoding="utf-8")
fh.setLevel(logging.DEBUG)
fh.setFormatter(fmt)
logger.addHandler(fh)
return logger