如何避免在日志模块中记录某些事件?

2024-04-26 13:15:53 发布

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

是否可以在Python中将logging模块设置为不log某个特定事件

我的脚本中有以下内容:

 logging.basicConfig(filename='logging/logging_log.log',level=logging.INFO,format='%(asctime)s %(levelname)s %(message)s')

这是logging在每个连接中自动执行的。我确实想记录每个连接,除了一个(试用版)

所以我的日志是这样的:

2016-03-02 16:08:20,519 INFO Starting new HTTP connection (1): noexample.com
2016-03-02 16:12:51,677 INFO Starting new HTTP connection (1): noexample.com
2016-03-02 16:12:52,045 INFO load_root> try: example.com
2016-03-02 16:12:52,046 INFO load_url example.com
2016-03-02 16:12:52,046 INFO Starting new HTTP connection (1):example.com

我想保留每一行,除了那些带有noexample.com的行

可能吗?如果是,如何进行


Tags: 模块info脚本comloghttpnewexample
1条回答
网友
1楼 · 发布于 2024-04-26 13:15:53

您可以使用logging filters实现它,就像this example中一样

class my_filter(logging.Filter):
    def __init__(self, name=None): pass
    def filter(self, rec):
        if 'noexample' in rec.msg:
            return False

之后,您需要调用handlers/loggers addFilter方法

myhandler.addFilter(the_filter)

相关问题 更多 >