2025-11-26 17:40:11 +08:00
|
|
|
|
# -*- coding: utf-8 -*-
|
2025-11-27 16:18:12 +08:00
|
|
|
|
import os
|
2025-11-26 17:40:11 +08:00
|
|
|
|
import yaml
|
2025-11-27 16:00:41 +08:00
|
|
|
|
import logging
|
2025-11-26 17:40:11 +08:00
|
|
|
|
from pathlib import Path
|
2025-11-27 16:00:41 +08:00
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
from logging.handlers import TimedRotatingFileHandler
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-27 16:01:52 +08:00
|
|
|
|
def create_logger(file_name):
|
2025-11-27 16:18:12 +08:00
|
|
|
|
# 使用固定文件名,不包含日期
|
|
|
|
|
|
log_dir = os.path.join(Path(__file__).resolve().parent.parent, 'logs')
|
|
|
|
|
|
os.makedirs(log_dir, exist_ok=True)
|
|
|
|
|
|
log_filename = os.path.join(log_dir, f'{file_name}.log')
|
2025-11-27 16:00:41 +08:00
|
|
|
|
|
|
|
|
|
|
logger = logging.getLogger("emu_dsl")
|
|
|
|
|
|
if logger.handlers:
|
|
|
|
|
|
return logger
|
|
|
|
|
|
|
|
|
|
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
2025-11-27 16:18:12 +08:00
|
|
|
|
|
|
|
|
|
|
# 配置TimedRotatingFileHandler,设置时区
|
|
|
|
|
|
file_handler = TimedRotatingFileHandler(filename=log_filename, when='midnight', interval=1,
|
|
|
|
|
|
backupCount=3, encoding='utf-8', utc=False)
|
2025-11-27 16:00:41 +08:00
|
|
|
|
file_handler.setFormatter(formatter)
|
2025-11-27 16:18:12 +08:00
|
|
|
|
file_handler.suffix = "%Y%m%d" # 设置备份文件的后缀格式
|
2025-11-27 16:00:41 +08:00
|
|
|
|
logger.addHandler(file_handler)
|
|
|
|
|
|
logger.setLevel(logging.INFO)
|
|
|
|
|
|
return logger
|
2025-11-26 17:40:11 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
2025-11-27 16:18:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
|
create_logger(file_name="all_task_management")
|