我有以下日志过滤器:
class LogFilter:
"""
Print all messages that do not equal hello."""
def filter(self, record):
print ('@@@@@@@ Filter', record)
if getattr(record, 'msg') == 'Hello':
return False
return True
def __repr__(self):
return 'LogFilter'
然后:
import logging
handler = logging.StreamHandler()
handler.addFilter(LogFilter())
logger = logging.getLogger(__name__)
logger.addHandler(handler)
如何卸下此过滤器?例如,当我尝试:
>>> handler.removeFilter(LogFilter())
>>> handler.removeFilter(LogFilter)
>>> handler.removeFilter('LogFilter') # ????
>>> handler.filters
[LogFilter] # filter is still there.
我还有过滤器。删除筛选器(或格式化程序)的正确方法是什么
如果您查看
removeFilter
的源代码您看到需要实际的
filter
对象才能删除它。一个快速的解决方法就是这样做然后,当您要移除过滤器时
相关问题 更多 >
编程相关推荐