2012-12-13 67 views
18

我有一个python的logging lib的问题。随着下面的代码我创建了一个 “记录”:Python logging.DEBUG级别不记录

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) 

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

我在使用syslog-ng,我设计了我的过滤器,也就是说它会接受从debugemerg的各个级别。

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

回答

21

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

添加到您的logger_init

logger.setLevel(level)