Skip to content

core / logger

core.logger

core.logger

Standard logger for the agent framework. Should be moved to utils

define_log_level(print_level='ERROR', logfile_level='DEBUG', name=None)

Configure Loguru logger. print_level: console log threshold logfile_level: file log threshold name: optional prefix for log filename

Source code in core\logger.py
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
def define_log_level(print_level="ERROR", logfile_level="DEBUG", name: str = None):
    """
    Configure Loguru logger.
    print_level: console log threshold
    logfile_level: file log threshold
    name: optional prefix for log filename
    """
    global _print_level

    # Ensure logs directory exists
    logs_dir = PROJECT_ROOT / "logs"
    logs_dir.mkdir(parents=True, exist_ok=True)
    # Build filename with timestamp
    timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
    log_name = f"{name}_{timestamp}" if name else timestamp
    log_path = logs_dir / f"{log_name}.log"

    # Remove all sinks
    _logger.remove()

    # Console output
    # _logger.add(
    #     sys.stderr,
    #     level=print_level,
    #     backtrace=True,
    #     diagnose=True,
    #     enqueue=True,
    # )

    # File output
    _logger.add(
        log_path,
        level=_print_level,
        backtrace=True,
        diagnose=True,
        enqueue=True,
        rotation="50 MB",
        retention="14 days",
    )

    return _logger