Server-Main / Version_3 /src /utils /logger.py
hch-dev
Reorganized and renamed Version folders
e6bbf5e
Raw
History Blame Contribute Delete
1.02 kB
import logging
from pathlib import Path
from datetime import datetime
# Global variable to store the log file path for the current run
_LOG_FILE = None
def get_logger(name: str):
global _LOG_FILE
logger = logging.getLogger(name)
logger.setLevel(logging.INFO)
if logger.handlers:
return logger
# Create log file path only once for the entire pipeline run
if _LOG_FILE is None:
date_dir = datetime.now().strftime("%Y-%m-%d")
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
log_dir = Path("logs") / date_dir
log_dir.mkdir(parents=True, exist_ok=True)
_LOG_FILE = log_dir / f"{timestamp}.log"
handler = logging.FileHandler(_LOG_FILE, encoding="utf-8")
formatter = logging.Formatter(
"[%(asctime)s]: %(filename)s - Line %(lineno)d: %(levelname)s: %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.propagate = False
return logger