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