\

Pythonのロギングシステムは非常に強力で、多くの情報を提供してくれます。しかし、時々、同じログが二重に表示される問題に遭遇することがあります。これは、特に同じLoggerオブジェクトに対してaddHandlerを二度呼び出した場合や、propagate設定がTrueのままになっている場合に発生します。

この問題を解決するための一般的な方法は以下の2つです:

  1. Loggerにハンドラを指定しない。
  2. Loggerpropagate値をfalseにする。

これらの方法を詳しく見てみましょう。

方法1:Loggerにハンドラを指定しない

この方法は、Loggerの設定からハンドラの指定を削除するだけです。以下はその例です:

logging.yaml
loggers:
  fuga:
    level: DEBUG

方法2:Loggerpropagate値をfalseにする

この方法は、Loggerpropagate値をfalseに設定することで、ログが親のLoggerに伝播するのを防ぎます。以下はその例です:

logging.yaml
loggers:
  fuga:
    level: DEBUG
    handlers: [fileRotatingHandler, consoleHandler]
    propagate: false

これらの方法を試すことで、Pythonのロギングで二重ログが表示される問題を解決できるはずです。適切な方法を選んで、より効果的なロギングを行いましょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です