为什么 Python Rich 打印为绿色?

问题描述 投票:0回答:1

使用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?")

Logging output showing unexpected green foreground for just the letters 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。

这是预期的吗?我需要转义或禁用什么来停止绿色输出?

python logging escaping rich
1个回答
1
投票

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
不起作用,因为它们只影响消息本身的标记,而不影响自动突出显示。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.