web-dev-qa-db-ja.com

Python logging.DEBUGレベルはログに記録されません

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)

そして私はそれを次のように呼びます:

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が非常にうまく機能しているが、infoメソッドもdebugメソッドもsyslogに何も出力しないことです。

私はsyslog-ngを使用しており、フィルターを設計しました。つまり、debugからemergまでのすべてのレベルを受け入れます。

ここでの問題は何ですか?何か案は?

31
0xmtn

ハンドラーだけでなく、ロガーのレベルも設定する必要があります。

これをlogger_initに追加します:

logger.setLevel(level)
31
Daniel Hepper