Python logging.DEBUG级别不记录

时间:2012-12-13 10:25:15

标签: python logging syslog-ng

我遇到了python的logging lib问题。使用下面的代码,我创建了一个“记录器”:

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)

问题是errorwarn运行良好,但infodebug方法都没有向syslog打印任何内容。

我正在使用syslog-ng并设计了我的过滤器,即它会接受从debugemerg的每个级别。

这是什么问题?有什么想法吗?

1 个答案:

答案 0 :(得分:29)

您还必须设置记录器的级别,而不仅仅是处理程序。

将此添加到您的logger_init

logger.setLevel(level)