\

Pythonでログを出力する際に、同じログが2回出力される問題に遭遇したことはありますか?この記事では、その原因と解決策について詳しく説明します。

原因

Pythonのloggingモジュールを使用していると、同じログが2回出力されることがあります。これは、同一のレコードが複数回発行される可能性があるためです。具体的には、ハンドラを、あるロガーとその祖先のロガーに接続した場合に発生します。

解決策

この問題を解決するための一般的な方法は、ハンドラをルートロガーに対してのみ接続し、残りはpropagateにすべて委ねることです。以下に、具体的な解決策を2つ紹介します。

方法1:fugaロガーにハンドラを指定しない

logging.yaml
loggers:
  fuga:
    level: DEBUG

方法2:fugaロガーのpropagate値をfalseにする

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

これらの方法を試すことで、Pythonのログが重複して出力される問題を解決できるでしょう。それぞれの状況に応じて最適な方法を選んでください。.

投稿者 admin

コメントを残す

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