| 
														
															@@ -2,35 +2,43 @@ import logging 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import os 
														 | 
														
														 | 
														
															 import os 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import sys 
														 | 
														
														 | 
														
															 import sys 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from pathlib import Path 
														 | 
														
														 | 
														
															 from pathlib import Path 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import colorlog 
														 | 
														
														 | 
														
															 import colorlog 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from logging.handlers import TimedRotatingFileHandler 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import datetime 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 # 创建日志记录器 
														 | 
														
														 | 
														
															 # 创建日志记录器 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 log = logging.getLogger(__name__) 
														 | 
														
														 | 
														
															 log = logging.getLogger(__name__) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 log.setLevel(logging.INFO) 
														 | 
														
														 | 
														
															 log.setLevel(logging.INFO) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-# project_root = Path(os.getcwd()).parent.parent 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+# 获取项目根目录 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 project_root = Path(os.path.abspath(os.path.dirname(__file__))).parent.parent 
														 | 
														
														 | 
														
															 project_root = Path(os.path.abspath(os.path.dirname(__file__))).parent.parent 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+# 日志目录设置 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 if sys.platform.startswith('linux'): 
														 | 
														
														 | 
														
															 if sys.platform.startswith('linux'): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    # Linux环境指定为/home目录 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    log_dir = r'/home/crossborder/logs' 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    log_dir = Path('/home/crossborder/logs') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 else: 
														 | 
														
														 | 
														
															 else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     log_dir = project_root / 'logs' 
														 | 
														
														 | 
														
															     log_dir = project_root / 'logs' 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 os.makedirs(log_dir, exist_ok=True)  # 自动创建目录(如果不存在) 
														 | 
														
														 | 
														
															 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 = colorlog.StreamHandler() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-console_handler.setLevel(logging.DEBUG) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+console_handler.setLevel(logging.DEBUG if os.getenv('DEBUG') else logging.INFO) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 # 文件格式器 
														 | 
														
														 | 
														
															 # 文件格式器 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 plain_formatter = logging.Formatter( 
														 | 
														
														 | 
														
															 plain_formatter = logging.Formatter( 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -58,3 +66,15 @@ console_handler.setFormatter(color_formatter) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 # 添加处理器到记录器 
														 | 
														
														 | 
														
															 # 添加处理器到记录器 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 log.addHandler(file_handler) 
														 | 
														
														 | 
														
															 log.addHandler(file_handler) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 log.addHandler(console_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级别日志 - 严重错误") 
														 |