Pythonのlogging
libに問題があります。以下のコードを使用して、「ロガー」を作成します。
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を使用しており、フィルターを設計しました。つまり、debug
からemerg
までのすべてのレベルを受け入れます。
ここでの問題は何ですか?何か案は?
ハンドラーだけでなく、ロガーのレベルも設定する必要があります。
これをlogger_init
に追加します:
logger.setLevel(level)