0

我有一个简单的自定义过滤器,只需将错误的日志级别更改为警告。代码是

import logging

LOG = logging.getLogger(__name__)

class MyErrorFilter(logging.Filter):
    def filter(self, record):
        if record.levelname == 'ERROR':
            print 'get record', str(record), record.levelname, record.levelno
            LOG.warn('check something')
            record.levelname = 'WARNING'
            record.levelno = logging.WARNING
    return 1

过滤器运行良好,只是过滤器中的 LOG.warn(...) 没有。我可以看到打印的消息并看到更改的日志级别,除了警告消息检查一些东西。这是预期的行为还是我在这里犯了错误?谢谢!

4

1 回答 1

1

不要从日志代码内部进行日志记录,这Filter本质上是 - 它是从日志记录机器内部调用的。日志是为应用程序和库的日志而设计的,但不是为了记录日志中发生的事情。我并不是说它永远不会起作用,但这不是一个好的做法。没有足够的信息来回答您的问题 - 例如,没有给出您的日志记录配置,因此无法说明为什么您的 LOG.xxx 不产生任何输出。

于 2013-10-10T07:02:43.807 回答