2 changed files with 99 additions and 28 deletions
			
			
		@ -0,0 +1,46 @@ | 
				
			|||||
 | 
					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  | 
				
			||||
					Loading…
					
					
				
		Reference in new issue