Python日志的DEBUG级别无法记录日志

34

我在使用Python的logging库时遇到了问题。使用以下代码创建了一个“记录器”:

logger = logging.getLogger()
def logger_init(level):
    try:
        syslog = SysLogHandler(address=LOG_DESTINATION)
    except Exception, ex:
        return
    formatter = logging.Formatter('%(module)s[%(process)d]: %(message)s')
    syslog.setFormatter(formatter)
    syslog.setLevel(level)
    logger.addHandler(syslog)

我会这样调用:

logger.debug(SOME_STR_TO_BE_LOGGED)

或者这样调用:

logger.error(SOME_STR_TO_BE_LOGGED)

我使用以下代码初始化日志记录器:

log_level = logging.ERROR
if options.DEBUG_LOG: ####  This comes from options parser and it is True.
    log_level = logging.DEBUG
logger_init(log_level)
问题在于错误警告功能非常好用,但信息调试方法没有将任何内容打印到系统日志中。我正在使用syslog-ng,我设计了我的过滤器,即它将接受从调试紧急的所有级别。这里的问题是什么?有任何想法吗?
1个回答

40

除了处理程序,您还需要设置记录器的级别。

将以下内容添加到您的logger_init中:

logger.setLevel(level)

我在这个问题上花了一些时间苦思冥想,非常感谢你的帮助,让我找到了问题所在。 - Raghav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接