We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如标题所示,只要调用了paddleocr,所有代码的logging level都会被修改掉,这是不对的,paddleocr应该只修改自己的log级别。我附上了测试代码,只要把代码中paddleocr的初始化代码删除就可以正常运行。也就是下面一段代码:
from paddleocr import PaddleOCR # 初始化PaddleOCR paddle = PaddleOCR(use_angle_cls=True, lang='en')
OS: windows 11 Paddle OCR version: 2.10.0
import unittest import logging import io from unittest.mock import patch class TestPaddleLogging(unittest.TestCase): def setUp(self): # 设置日志捕获 self.log_output = io.StringIO() self.handler = logging.StreamHandler(self.log_output) self.handler.setFormatter(logging.Formatter('%(levelname)s - %(message)s')) logging.getLogger().addHandler(self.handler) logging.getLogger().setLevel(logging.INFO) def tearDown(self): # 清理日志处理器 logging.getLogger().removeHandler(self.handler) self.log_output.close() def test_paddle_logging_behavior(self): logger = logging.getLogger(__name__) # 记录初始化前的日志 pre_init_message = "这是在PaddleOCR初始化之前的日志消息" logger.info(pre_init_message) # 获取初始化前的日志输出 pre_init_log = self.log_output.getvalue() self.assertIn(pre_init_message, pre_init_log) # 清空日志缓冲区 self.log_output.truncate(0) self.log_output.seek(0) from paddleocr import PaddleOCR # 初始化PaddleOCR paddle = PaddleOCR(use_angle_cls=True, lang='en') # 记录初始化后的日志 post_init_message = "这是在PaddleOCR初始化之后的日志消息" logger.info(post_init_message) # 获取初始化后的日志输出 post_init_log = self.log_output.getvalue() # 验证初始化后的日志是否未显示 self.assertNotEqual("", post_init_log.strip()) if __name__ == '__main__': unittest.main()
The text was updated successfully, but these errors were encountered:
这个问题之前也遇到过。我这里只能尝试看看能否找到问题根源。
Sorry, something went wrong.
定位到这个问题是paddle框架的bug。具体来说,在Paddle 3.0版本的 paddle/distributed/utils/log_utils.py 中,get_logger函数默认对root logger进行修改,对于一个library来说,这不是一个好的实践。建议可以到Paddle框架repo提一个issue反馈一下~
paddle/distributed/utils/log_utils.py
get_logger
除了默认 name 是 root,还有一处显示指定 name 为 root 的调用,已反馈到 Paddle 的 repo: PaddlePaddle/Paddle#57165
No branches or pull requests
🔎 Search before asking
🐛 Bug (问题描述)
如标题所示,只要调用了paddleocr,所有代码的logging level都会被修改掉,这是不对的,paddleocr应该只修改自己的log级别。我附上了测试代码,只要把代码中paddleocr的初始化代码删除就可以正常运行。也就是下面一段代码:
🏃♂️ Environment (运行环境)
OS: windows 11
Paddle OCR version: 2.10.0
🌰 Minimal Reproducible Example (最小可复现问题的Demo)
The text was updated successfully, but these errors were encountered: