34

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)

問題はerror、 とwarnが非常にうまく機能していることですが、メソッドinfodebugメソッドも syslog に何も出力しません。

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

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

4

1 に答える 1

40

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

これをあなたに追加してくださいlogger_init

logger.setLevel(level)
于 2012-12-13T10:37:05.100 に答える