使用Rich我在控制台中得到了我认为是虚假的绿色输出。
在以下代码中,“d:c”为绿色,其余文本如预期。
from rich.logging import RichHandler
import logging
logging.basicConfig(
handlers=[RichHandler()],
format='%(message)s'
)
logging.getLogger().setLevel(logging.DEBUG)
logging.info("Why is this green d:c?")
我已经阅读了丰富的文档并且我已经尝试过:
RichHandler(markup=False)
logging.info(escape("Why is this green d:c?"))
在 Jupyter、Windows (11) 和 Linux (Ubuntu 24.04) 中也是一样的
我使用的是 Rich 版本 13.9.3。
这是预期的吗?我需要转义或禁用什么来停止绿色输出?
Rich 默认情况下会进行一些自动突出显示(具体来说,
RichHandler
默认使用 ReprHighlighter
,即“突出显示通常由 __repr__
方法生成的文本。”)。执行 logging.info("Why is this green d:c?", extra={"highlighter": None})
为单个消息关闭它,或者执行 from rich.highlighter import NullHighlighter
和 handlers=[RichHandler(highlighter=NullHighlighter())],
为所有消息关闭它。执行 markup=False
和 escape
不起作用,因为它们只影响消息本身的标记,而不影响自动突出显示。