# -*- coding: utf-8 -*- import yaml import logging from pathlib import Path from datetime import datetime from logging.handlers import TimedRotatingFileHandler def create_logger(file_name): now_date = datetime.now().strftime('%Y%m%d') log_filename = os.path.join(Path(__file__).resolve().parent.parent, f'logs/{file_name}_{now_date}.log') path = Path(log_filename).resolve().parent os.makedirs(path, exist_ok=True) logger = logging.getLogger("emu_dsl") # 防止重复添加handler if logger.handlers: return logger formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') file_handler = TimedRotatingFileHandler(log_filename, when='midnight', backupCount=7, encoding='utf-8') file_handler.setFormatter(formatter) logger.addHandler(file_handler) logger.setLevel(logging.INFO) return logger def read_config(path): if Path(path).exists(): with open(path, encoding="utf-8") as f: config = yaml.safe_load(f) return config else: raise FileNotFoundError