Kevin Wu
put in API
4e887d3
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