Python logging.DEBUG级别不记录

0xm*_*mtn 31 python logging syslog-ng

我有python的logginglib 的问题.使用下面的代码,我创建了一个"记录器":

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)
Run Code Online (Sandbox Code Playgroud)

我称之为:

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)
Run Code Online (Sandbox Code Playgroud)

该问题是error,和warn工作得很好,但既不info也不debug方法打印任何东西到syslog.

我使用的是syslog-ng的,我设计我的过滤器,即它会接受来自各个层面debugemerg.

这里有什么问题?有任何想法吗?

Dan*_*per 34

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

将此添加到您的logger_init:

logger.setLevel(level)
Run Code Online (Sandbox Code Playgroud)