Source code for wimarka.utils.logger

import logging
import os
from datetime import datetime

[docs] def setup_logger(log_dir: str = "logs", name: str = "wimarka", level=logging.INFO): os.makedirs(log_dir, exist_ok=True) log_file = os.path.join(log_dir, f"{name}_{datetime.now():%Y%m%d_%H%M%S}.log") logger = logging.getLogger(name) logger.setLevel(level) if not logger.handlers: console_handler = logging.StreamHandler() console_handler.setLevel(level) file_handler = logging.FileHandler(log_file) file_handler.setLevel(level) formatter = logging.Formatter( fmt="[%(asctime)s] [%(levelname)s] %(name)s: %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) console_handler.setFormatter(formatter) file_handler.setFormatter(formatter) logger.addHandler(console_handler) logger.addHandler(file_handler) return logger