You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
import os
|
|
import logging
|
|
from datetime import datetime
|
|
|
|
def setup_logger(name, log_dir='logs'):
|
|
"""
|
|
设置日志记录器
|
|
|
|
参数:
|
|
name: 日志记录器名称
|
|
log_dir: 日志文件存储目录
|
|
|
|
返回:
|
|
logger: 配置好的日志记录器
|
|
"""
|
|
# 创建logs目录
|
|
os.makedirs(log_dir, exist_ok=True)
|
|
|
|
# 创建日志记录器
|
|
logger = logging.getLogger(name)
|
|
logger.setLevel(logging.INFO)
|
|
|
|
# 如果logger已经有处理器,则不添加
|
|
if logger.handlers:
|
|
return logger
|
|
|
|
# 创建格式化器
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
|
|
# 创建文件处理器
|
|
current_time = datetime.now().strftime('%Y%m%d_%H%M%S')
|
|
log_file = os.path.join(log_dir, f'{name}_{current_time}.log')
|
|
file_handler = logging.FileHandler(log_file, encoding='utf-8')
|
|
file_handler.setLevel(logging.INFO)
|
|
file_handler.setFormatter(formatter)
|
|
|
|
# 添加文件处理器到日志记录器
|
|
logger.addHandler(file_handler)
|
|
|
|
# 记录初始信息
|
|
logger.info("="*50)
|
|
logger.info(f"Logger initialized: {name}")
|
|
logger.info(f"Log file: {log_file}")
|
|
logger.info("="*50)
|
|
|
|
return logger
|