LOG.info没有设置字符串格式的选项

2024-09-29 02:15:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python2.7中使用以下日志模块

import logging
LOG = logging.getLogger(__name__)

我能做的事 LOG.warn("Namespace {0} is not compliant.").format(namespace)

但不是 LOG.info("Namespace {0} is not compliant.").format(namespace)

但这是可行的: LOG.info("Namespace %s is hipaa compliant.", namespace)

我想知道为什么只有LOG.info不起作用


Tags: 模块nameimportinfologformatislogging
1条回答
网友
1楼 · 发布于 2024-09-29 02:15:17

此代码:

LOG.warn("Namespace {0} is not compliant.").format(namespace)

相当于:

x = LOG.warn("Namespace {0} is not compliant.")

x.format(namespace)           # Return value unused

换句话说:

  • 您正在将未格式化的字符串传递给warn
  • 然后对该返回值调用.format()
    • Logger.warning的返回值未指定,但显然是一个字符串
    • 字符串在Python中是不可变的,因此这没有任何效果(因为您不保存结果)

相反,您需要这样做:

LOG.warn( "Namespace {0} is not compliant.".format(namespace) )

相关问题 更多 >