文件内容
lib/log_utils.py
#!/usr/bin/env python3
"""Structured logging utilities for memory-health-check."""
import logging
import sys
from pathlib import Path
from typing import Optional
_LOG_FORMAT = "[%(asctime)s] [%(name)s] %(levelname)s: %(message)s"
_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
def get_logger(
name: str = "memory-health-check",
level: int = logging.INFO,
log_file: Path = None,
) -> logging.Logger:
"""Get a configured logger instance.
Args:
name: Logger name
level: Logging level
log_file: Optional file path for file logging
Returns:
logging.Logger: Configured logger
"""
logger = logging.getLogger(name)
logger.setLevel(level)
if logger.handlers:
return logger
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(level)
console_handler.setFormatter(logging.Formatter(_LOG_FORMAT, datefmt=_DATE_FORMAT))
logger.addHandler(console_handler)
if log_file:
log_file.parent.mkdir(parents=True, exist_ok=True)
file_handler = logging.FileHandler(str(log_file), encoding="utf-8")
file_handler.setLevel(level)
file_handler.setFormatter(logging.Formatter(_LOG_FORMAT, datefmt=_DATE_FORMAT))
logger.addHandler(file_handler)
return logger
if __name__ == "__main__":
log = get_logger("test")
log.info("Test info message")