'StandaloneHTMLBuilder' 对象没有属性 'warn'

'StandaloneHTMLBuilder' object has no attribute 'warn'

我为 sphinx 创建了一个小扩展,并希望在 directive/role 出现问题时显示警告。受 sphinx-contrib 组织一些已经存在的扩展的启发,我使用了以下内容:

try:
    font, glyph = get_glyph(node["icon"])
except ValueError as e:
    self.builder.warn(str(e))
    raise nodes.SkipNode

当我实际遇到错误时,我收到以下错误消息:

AttributeError: 'StandaloneHTMLBuilder' object has no attribute 'warn'

在网络上查看,该属性似乎已被弃用。我现在应该如何显示日志消息?

env
斯芬克斯 >= 4.3.2

正如 @mzjn 所建议的那样。我需要使用 Sphinx 记录器:

将我的代码略微转换为:

from sphinx.util import logging

logger = logging.getLogger(__name__)

try:
    font, glyph = get_glyph(node["icon"])
except ValueError as e:
    logger.warning(str(e), location=node)
    raise nodes.SkipNode