| 
					
				 | 
			
			
				@@ -2,35 +2,43 @@ import logging 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import os 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import sys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from pathlib import Path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import colorlog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from logging.handlers import TimedRotatingFileHandler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import datetime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # 创建日志记录器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 log = logging.getLogger(__name__) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 log.setLevel(logging.INFO) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# project_root = Path(os.getcwd()).parent.parent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 获取项目根目录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 project_root = Path(os.path.abspath(os.path.dirname(__file__))).parent.parent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 日志目录设置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if sys.platform.startswith('linux'): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # Linux环境指定为/home目录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    log_dir = r'/home/crossborder/logs' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    log_dir = Path('/home/crossborder/logs') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     log_dir = project_root / 'logs' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 os.makedirs(log_dir, exist_ok=True)  # 自动创建目录(如果不存在) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 创建文件处理器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-file_handler = logging.FileHandler(f'{log_dir}/cross.log', encoding='utf-8') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-file_handler.setLevel(logging.INFO) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 创建带日期归档的文件处理器 - 关键修改点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+log_file = log_dir / 'cross.log' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+file_handler = TimedRotatingFileHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    filename=str(log_file), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    when='midnight',  # 每天午夜切换新日志 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    interval=1,       # 每天的间隔 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    backupCount=30,    # 保留30天的日志 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    encoding='utf-8', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    utc=False         # 使用本地时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 创建控制台处理器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-console_handler = logging.StreamHandler() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-console_handler.setLevel(logging.INFO) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 设置时间后缀格式 - 在日志文件名后添加日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+file_handler.suffix = "%Y-%m-%d" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+file_handler.setLevel(logging.INFO) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 控制台处理器(带颜色) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 创建控制台处理器(带颜色) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 console_handler = colorlog.StreamHandler() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-console_handler.setLevel(logging.DEBUG) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+console_handler.setLevel(logging.DEBUG if os.getenv('DEBUG') else logging.INFO) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # 文件格式器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 plain_formatter = logging.Formatter( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -58,3 +66,15 @@ console_handler.setFormatter(color_formatter) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # 添加处理器到记录器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 log.addHandler(file_handler) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 log.addHandler(console_handler) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 禁用不必要库的日志 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+logging.getLogger("urllib3").setLevel(logging.WARNING) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+logging.getLogger("selenium").setLevel(logging.WARNING) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 测试日志 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if __name__ == "__main__": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    log.debug("DEBUG级别日志 - 通常不会显示") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    log.info("INFO级别日志 - 程序运行信息") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    log.warning("WARNING级别日志 - 需要注意的问题") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    log.error("ERROR级别日志 - 错误信息") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    log.critical("CRITICAL级别日志 - 严重错误") 
			 |