2012-12-13 96 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)