Python日志在ini文件中为处理程序添加过滤器?

2024-10-01 19:23:52 发布

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

我有一个日志.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')) 这样的处理程序动态添加过滤器

我的过滤器是这样的:

^{pr2}$

我想达到什么目的?我想使用一个记录器和两个不同的处理程序将不同级别的日志写入不同的文件。在

我还发现“如果您需要在日志记录配置中使用Filter实例,那么您将需要使用https://docs.python.org/2/library/logging.config.html中的dictConfig()”。在


Tags: formatterloggingutilstdoutsysargsfilterlevel
1条回答
网友
1楼 · 发布于 2024-10-01 19:23:52

好像我只能做一些事情:

class InfoHandler(StreamHandler):
    def __init__(self, *args, **kwargs):
        StreamHandler.__init__(self, *args, **kwargs)
        self.addFilter(InfoFilter())


class ErrorHandler(StreamHandler):
    def __init__(self, *args, **kwargs):
        StreamHandler.__init__(self, *args, **kwargs)
        self.addFilter(ErrorFilter())

添加make ini like:

^{pr2}$

相关问题 更多 >

    热门问题