相关疑难解决方法(0)

为什么logger.info()仅在调用logging.info()之后出现?

我正在使用Python 3.6.4。我首先遇到一个logger.setLevel(logging.INFO)被忽略的问题,遇到了这个答案,这使我感到困惑,并引发了这个问题。

根据以下代码,

1.为什么logging.info('2')要在代码段2中打印而不是在代码段1中打印?(不是logging.info()模块级别的功能吗?为什么命名记录器会影响此调用?)

2.为什么logger.info('3')要打印,但不打印logger.info('1')

片段1

>>> import logging
>>> logger = logging.getLogger('foo')  # named logger
>>> logger.setLevel(logging.INFO)
>>> logger.info('1')
>>> logging.info('2')  # prints nothing
>>> logger.info('3')
INFO:foo:3
Run Code Online (Sandbox Code Playgroud)

片段2

>>> import logging
>>> logger = logging.getLogger()  # no name
>>> logger.setLevel(logging.INFO)
>>> logger.info('1')
>>> logging.info('2')  # printed
INFO:root:2
>>> logger.info('3')
INFO:root:3
Run Code Online (Sandbox Code Playgroud)

python logging python-3.x

5
推荐指数
1
解决办法
231
查看次数

如何在Python中设置日志级别?

我有以下完整的 python (3.8.5) 代码示例

import logging
L = logging.getLogger(__name__)

def main():
    L.setLevel(logging.DEBUG)
    L.warning("This is warn")
    L.info("This is info")
    L.debug("This is debug")

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

它应该打印出所有三个短语,但只打印第一个短语(用于警告)。

如何规避这个错误?

python python-3.x

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×2

python-3.x ×2

logging ×1