transponster27's picture
upload scripts
73b7d9e verified
Raw
History Blame Contribute Delete
1.05 kB
# Centralized logging configuration.
# Import get_logger() in any module instead of
# creating logging configs repeatedly.
import logging
from pathlib import Path
def get_logger(name: str):
log_dir = Path("logs")
log_dir.mkdir(exist_ok=True)
logger = logging.getLogger(name)
# Prevent duplicate handlers
if logger.handlers:
return logger
logger.setLevel(logging.INFO)
formatter = logging.Formatter(
fmt=(
"%(asctime)s | "
"%(levelname)s | "
"%(name)s | "
"%(message)s"
),
datefmt="%Y-%m-%d %H:%M:%S"
)
# Console output
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
# File output
file_handler = logging.FileHandler(
"logs/training.log",
mode="a",
encoding="utf-8"
)
file_handler.setFormatter(formatter)
logger.addHandler(console_handler)
logger.addHandler(file_handler)
return logger