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

时间:2016-03-02 15:21:31

标签: python logging

是否可以在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之外,我想保留每一行。

有可能吗?如果是,怎么样?

1 个答案:

答案 0 :(得分:0)

您可以使用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

之后你需要调用处理程序/记录器addFilter方法

myhandler.addFilter(the_filter)