Bläddra i källkod

新增日志库

mrh 10 månader sedan
förälder
incheckning
dfca410425
2 ändrade filer med 63 tillägg och 0 borttagningar
  1. 4 0
      CONVENTIONS.md
  2. 59 0
      mylib/logging_config.py

+ 4 - 0
CONVENTIONS.md

@@ -0,0 +1,4 @@
+编程注意事项:
+- 编写模块化函数的时候,需要添加适当的注释。
+- 编写代码遵循模块化,高内聚低耦合原则,符合程序设计的基本原则。
+- 将所有函数定义分解成最小化的任务,不要执行多个步骤在同一个函数里面。分解任务函数。必须只能最小化一个任务一个函数。

+ 59 - 0
mylib/logging_config.py

@@ -0,0 +1,59 @@
+import logging
+import sys
+import os
+from pathlib import Path
+from mylib.settings import OUTPUT_DIR, WORK_DIR
+
+def _get_relative_path(pathname):
+    """将绝对路径转换为相对于项目根目录的相对路径"""
+    try:
+        # 获取项目根目录
+        project_root = WORK_DIR.parent
+        # 转换为相对路径
+        relative_path = os.path.relpath(pathname, start=project_root)
+        return relative_path
+    except ValueError:
+        # 如果路径不在项目目录下,返回原路径
+        return pathname
+
+class RelativePathFormatter(logging.Formatter):
+    def format(self, record):
+        # 转换路径为相对路径
+        record.pathname = _get_relative_path(record.pathname)
+        return super().format(record)
+
+def setup_logging():
+    # Create logs directory
+    logs_dir = Path(WORK_DIR / "temp/logs/aider_coder")
+    # mkdir -p 
+    logs_dir.mkdir(parents=True, exist_ok=True)
+    
+    # Create formatter
+    formatter = RelativePathFormatter(
+        '%(asctime)s - %(pathname)s:%(lineno)d - %(levelname)s - %(message)s'
+    )
+    
+    # Configure logging
+    handler = logging.StreamHandler(sys.stdout)
+    handler.setFormatter(formatter)
+    
+    file_handler = logging.FileHandler(logs_dir / "aider_coder.log")
+    file_handler.setFormatter(formatter)
+    
+    # 获取根logger
+    root_logger = logging.getLogger()
+    root_logger.setLevel(logging.WARNING)  # 设置根logger为WARNING级别
+    
+    # 创建项目特定的logger
+    project_logger = logging.getLogger('excel_tool')
+    project_logger.setLevel(logging.DEBUG)
+    project_logger.propagate = False  # 防止日志传播到根logger
+    
+    # 添加handler到项目logger
+    project_logger.addHandler(handler)
+    project_logger.addHandler(file_handler)
+    
+    # 设置其他库的日志级别为WARNING
+    logging.getLogger('urllib3').setLevel(logging.WARNING)
+    logging.getLogger('requests').setLevel(logging.WARNING)
+    logging.getLogger('chardet').setLevel(logging.WARNING)