首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在自定义python记录器上设置级别?

如何在自定义python记录器上设置级别?
EN

Stack Overflow用户
提问于 2021-10-13 14:48:19
回答 1查看 328关注 0票数 0

我有一个定制的python记录器

代码语言:javascript
复制
# logger.py

import logging
#logging.basicConfig(level=logging.DEBUG)

logger = logging.getLogger(__name__)

c_handler = logging.StreamHandler()
c_handler.setLevel(logging.DEBUG)

c_format = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
c_handler.setFormatter(c_format)

logger.addHandler(c_handler)

我已将级别设置为调试,但只显示了警告(和上面的警告)。

代码语言:javascript
复制
from ..logger import logger
...
logger.debug('this is a debug log message')
logger.warning('too hot to handle')
...

my_module.logger:too热处理

如果我取消评论的话

代码语言:javascript
复制
logging.basicConfig(level=logging.DEBUG)

然后我得到了调试级别,但是有两个消息副本。

my_module.logger -调试-这是一个调试日志消息DEBUG:my_module.logger:this是一个调试日志消息my_module.logger警告太热了无法处理WARNING:my_module.logger:too热到无法处理。

我不会在包中的任何其他点导入日志记录。

我应该如何配置记录器?

EN

回答 1

Stack Overflow用户

发布于 2021-10-13 15:12:43

再次阅读文档之后,我意识到传播是我需要用来关闭祖先日志输出的属性。所以我的伐木工变成了

代码语言:javascript
复制
# logger.py

import logging
logging.basicConfig(level=logging.DEBUG)
logger.propagate = False

logger = logging.getLogger(__name__)

c_handler = logging.StreamHandler()
c_handler.setLevel(logging.DEBUG)

c_format = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
c_handler.setFormatter(c_format)

logger.addHandler(c_handler)

我只收到一条日志消息,并且使用了调试级别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69557664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档