小编Hli*_*ets的帖子

如何避免从 Python 中的自定义记录器调用根处理程序?

我有一个具有调试级别的日志记录模块的基本配置 - 现在我想创建另一个仅具有错误级别的记录器。我怎样才能做到这一点?

问题是除了错误处理程序之外还调用了根处理程序 - 这是我想避免的事情。

import logging
fmt = '%(asctime)s:%(funcName)s:%(lineno)d:%(levelname)s:%(name)s:%(message)s'
logging.basicConfig(level=logging.DEBUG, format=fmt)

logger = logging.getLogger('Temp')
logger.setLevel(logging.ERROR)
handler = logging.StreamHandler()
handler.setLevel(logging.ERROR)
logger.addHandler(handler)

logger.error('boo')
Run Code Online (Sandbox Code Playgroud)

上面的代码打印了两次 boo ,而我只期望一次,而且我不知道如何处理这个恼人的问题......

In [4]: logger.error('boo')
boo
2021-04-26 18:54:24,329:<module>:1:ERROR:Temp:boo

In [5]: logger.handlers
Out[5]: [<StreamHandler stderr (ERROR)>]
Run Code Online (Sandbox Code Playgroud)

python logging

10
推荐指数
1
解决办法
3419
查看次数

标签 统计

logging ×1

python ×1