【发布时间】:2017-03-21 11:45:27
【问题描述】:
我有一个这样的 log.ini:
[handler_info]
class=StreamHandler
level=INFO
formatter=fmt
filter=infofilter
args=(sys.stdout,)
[handler_error]
class=StreamHandler
level=ERROR
filter=errorfilter
formatter=fmt
args=(sys.stdout,)
[filter_infofilter]
class=util.testfm.InfoFilter
[filter_errorfilter]
class=util.testfm.ErrorFilter
但它不起作用。而且我不想为handler.addFilter(logging.Filter('foo'))
之类的处理程序动态添加过滤器
我的过滤器是这样的:
class InfoFilter(logging.Filter):
def filter(self, rec):
return rec.levelno <= logging.INFO
class ErrorFilter(logging.Filter):
def filter(self, rec):
return rec.levelno > logging.INFO
我想达到什么目标?我想使用一个记录器和两个不同的处理程序将不同级别的日志写入不同的文件。
我还在https://docs.python.org/2/library/logging.config.html 中找到“如果您需要在日志配置中包含 Filter 实例,则需要使用 dictConfig()”。
【问题讨论】: