Spaces:
Sleeping
Sleeping
import logging | |
import os | |
from pathlib import Path | |
from datetime import datetime | |
__all__ = ["get_review_logger"] | |
LOG_DIR = Path(os.getenv("TMLR_LOG_DIR", "/tmp/tmlr_logs")) | |
LOG_DIR.mkdir(exist_ok=True) | |
def get_review_logger(review_id: str | None = None) -> logging.Logger: | |
"""Return a configured logger for a single review run. | |
A new ``FileHandler`` is attached whose filename is based on *review_id* or a | |
timestamp if none is given. | |
""" | |
name = f"tmlr_reviewer.{review_id or datetime.utcnow().strftime('%Y%m%d_%H%M%S')}" | |
logger = logging.getLogger(name) | |
if logger.handlers: | |
# already configured | |
return logger | |
logger.setLevel(logging.INFO) | |
# Console output | |
stream_handler = logging.StreamHandler() | |
stream_handler.setFormatter(logging.Formatter("[%(levelname)s] %(message)s")) | |
logger.addHandler(stream_handler) | |
# File output | |
log_file = LOG_DIR / f"{name}.log" | |
file_handler = logging.FileHandler(log_file) | |
file_handler.setFormatter(logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")) | |
logger.addHandler(file_handler) | |
return logger |