Browse Source

refactor: Replace debug mode with log level argument for improved logging

- Removed the debug mode flag and replaced it with a log level argument to enhance logging capabilities.
- Updated README and usage examples to reflect the new log level option.
- Adjusted the DotsOCRProcessor to utilize log levels for error reporting and information logging.
zhch158_admin 1 week ago
parent
commit
94bd0837ff

+ 5 - 6
ocr_tools/dots.ocr_vl_tool/README.md

@@ -56,12 +56,12 @@ python main.py --input document.pdf --output_dir ./output --pages "-10"
 # 从第5页到最后(PDF或图片目录)
 python main.py --input document.pdf --output_dir ./output --pages "5-"
 
-# 启用调试模式
-python main.py --input document.pdf --output_dir ./output --debug
-
 # 仅验证配置(dry run)
 python main.py --input document.pdf --output_dir ./output --dry_run
 
+# 使用 DEBUG 日志级别获取详细错误信息
+python main.py --input document.pdf --output_dir ./output --log_level DEBUG
+
 # 指定服务器地址
 python main.py --input document.pdf --output_dir ./output --ip 10.192.72.11 --port 8101
 
@@ -116,7 +116,6 @@ python main.py --input ./images/ --output_dir ./output --use_threading --max_wor
 ### 功能开关
 
 - `--no-normalize`: 禁用数字标准化(默认启用)
-- `--debug`: 启用调试模式(保存原始版本用于对比)
 - `--dry_run`: 仅验证配置,不执行处理
 
 ### 日志参数
@@ -165,7 +164,7 @@ python main.py \
   --pages "1-10" \
   --ip 10.192.72.11 \
   --port 8101 \
-  --debug
+  --log_level DEBUG
 ```
 
 ### 示例2:批量处理图片目录(并发)
@@ -217,7 +216,7 @@ python main.py \
 
 ### 问题:处理失败
 
-- 启用 `--debug` 模式查看详细错误信息
+- 使用 `--log_level DEBUG` 获取详细错误信息和 traceback
 - 检查输出目录权限
 - 查看日志文件获取更多信息
 

+ 5 - 13
ocr_tools/dots.ocr_vl_tool/main.py

@@ -226,11 +226,11 @@ def main():
   # 指定页面范围(仅PDF)
   python main.py --input document.pdf --output_dir ./output --pages "1-5,7"
   
-  # 启用调试模式
-  python main.py --input document.pdf --output_dir ./output --debug
-  
   # 仅验证配置(dry run)
   python main.py --input document.pdf --output_dir ./output --dry_run
+  
+  # 使用 DEBUG 日志级别获取详细错误信息
+  python main.py --input document.pdf --output_dir ./output --log_level DEBUG
         """
     )
     
@@ -299,11 +299,6 @@ def main():
         action='store_true',
         help='禁用数字标准化'
     )
-    parser.add_argument(
-        '--debug',
-        action='store_true',
-        help='启用调试模式'
-    )
     
     # 处理参数
     parser.add_argument(
@@ -397,7 +392,7 @@ def main():
             logger.info(f"  - 批次大小: {args.batch_size}")
             logger.info(f"  - PDF DPI: {args.dpi}")
             logger.info(f"  - 数字标准化: {not args.no_normalize}")
-            logger.info(f"  - 调试模式: {args.debug}")
+            logger.info(f"  - 日志级别: {args.log_level}")
             if args.pages:
                 logger.info(f"  - 页面范围: {args.pages}")
             if args.use_threading:
@@ -424,7 +419,7 @@ def main():
             min_pixels=args.min_pixels,
             max_pixels=args.max_pixels,
             normalize_numbers=not args.no_normalize,
-            debug=args.debug
+            log_level=args.log_level
         )
         
         # 开始处理
@@ -560,9 +555,6 @@ if __name__ == "__main__":
         sys.argv = [sys.argv[0]]
         for key, value in default_config.items():
             sys.argv.extend([f"--{key}", str(value)])
-        
-        # 调试模式
-        sys.argv.append("--debug")
     
     sys.exit(main())
 

+ 6 - 6
ocr_tools/dots.ocr_vl_tool/processor.py

@@ -40,7 +40,7 @@ class DotsOCRProcessor:
                  min_pixels: int = MIN_PIXELS,
                  max_pixels: int = MAX_PIXELS,
                  normalize_numbers: bool = False,
-                 debug: bool = False):
+                 log_level: str = "INFO"):
         """
         初始化处理器
         
@@ -53,7 +53,7 @@ class DotsOCRProcessor:
             min_pixels: 最小像素数
             max_pixels: 最大像素数
             normalize_numbers: 是否标准化数字
-            debug: 是否启用调试模式
+            log_level: 日志级别(DEBUG, INFO, WARNING, ERROR),当为 DEBUG 时会打印详细错误信息
         """
         self.ip = ip
         self.port = port
@@ -63,7 +63,7 @@ class DotsOCRProcessor:
         self.min_pixels = min_pixels
         self.max_pixels = max_pixels
         self.normalize_numbers = normalize_numbers
-        self.debug = debug
+        self.log_level = log_level
 
         # 初始化解析器
         self.parser = DotsOCRParser(
@@ -81,7 +81,7 @@ class DotsOCRProcessor:
         logger.info(f"  - 提示模式: {prompt_mode}")
         logger.info(f"  - 像素范围: {min_pixels} - {max_pixels}")
         logger.info(f"  - 数字标准化: {normalize_numbers}")
-        logger.info(f"  - 调试模式: {debug}")
+        logger.info(f"  - 日志级别: {log_level}")
     
     def create_temp_session_dir(self) -> tuple:
         """创建临时会话目录"""
@@ -191,7 +191,7 @@ class DotsOCRProcessor:
             
         except Exception as e:
             logger.error(f"Error saving results for {image_name}: {e}")
-            if self.debug:
+            if self.log_level == "DEBUG":
                 traceback.print_exc()
             
         return saved_files
@@ -296,7 +296,7 @@ class DotsOCRProcessor:
             result_info["error"] = str(e)
             result_info["success"] = False
             logger.error(f"Error processing {image_name}: {e}")
-            if self.debug:
+            if self.log_level == "DEBUG":
                 traceback.print_exc()
         
         finally: