如何在Python和Django中登录日志过滤器?

如何在Python和Django中登录日志过滤器?,python,django,logging,filter,Python,Django,Logging,Filter,我有一个简单的自定义过滤器,可以简单地将错误的日志级别更改为警告。代码是 import logging LOG = logging.getLogger(__name__) class MyErrorFilter(logging.Filter): def filter(self, record): if record.levelname == 'ERROR': print 'get record', str(record), record.lev

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

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(…)没有运行。我可以看到打印的消息和更改的日志级别,除了警告消息check something。这是一种预期的行为还是我在这里犯了错误?谢谢

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