记录器不传播给儿童模块

时间:2017-09-07 06:44:51

标签: python logging

我有两个文件,a.pyb.py

这是用两个文件写的:

import logging
import sys
logger = logging.getLogger(__name__)
logger.addHandler(logging.StreamHandler(sys.stdout))

现在,当我将方法从b.py导入a.py时,b.py方法中的日志不会显示在控制台上。

来自a.py的呼叫与b.method_name()类似。

如何在控制台中显示来自b.py的日志?

1 个答案:

答案 0 :(得分:0)

鉴于a.py

import logging
import sys
import b


logger = logging.getLogger(__name__)
logger.addHandler(logging.StreamHandler(sys.stdout))


def bar():
    logger.error("bar error")
    logger.info("bar info")
    logger.warning("bar warnign")

bar()    
b.foo()

b.py

import logging
import sys
logger = logging.getLogger(__name__)
logger.addHandler(logging.StreamHandler(sys.stdout))

def foo():
    logger.error("foo error")
    logger.info("foo info")
    logger.warning("foo warnign")

我得到以下输出:

bar error
bar warnign
foo error
foo warnign

不确定文件的外观,但默认情况下,您不会看到某些日志记录级别以下的邮件(在这种情况下,您将看到最低的warning)。