File size: 1,136 Bytes
b3b5141
4e887d3
b3b5141
 
 
 
 
 
4e887d3
b3b5141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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