ホームページ  >  記事  >  バックエンド開発  >  Python で Stdout とログ ファイルに同時にログを記録するにはどうすればよいですか?

Python で Stdout とログ ファイルに同時にログを記録するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-18 18:55:291035ブラウズ

How to Log to Stdout and Log File Simultaneously in Python?

Python でログを標準出力とログ ファイルに同時に書き込む

ログ出力の制御は、Python で重要な情報をデバッグおよびキャプチャするために不可欠です。ロギング モジュールは、メッセージをファイルに記録するための広範な機能を提供します。ただし、すぐに確認できるように、コンソール (stdout) にもログを表示すると有益です。

解決策:

すべてのログ メッセージが stdout に出力されるようにするには指定されたログ ファイルに加えて、logging.StreamHandler() をルート ロガーに追加することで、ロギング モジュールの機能を拡張できます。

実装:

<code class="python">import logging
import sys

# Capture stdout
stdout = sys.stdout

# Create a root logger
root = logging.getLogger()

# Set the logging level (DEBUG in this case)
root.setLevel(logging.DEBUG)

# Define the StreamHandler
handler = logging.StreamHandler(stdout)

# Configure the message format
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# Add the StreamHandler to the root logger
root.addHandler(handler)</code>

この変更により、logger.warning、logger.critical、logger.error などのメソッドを使用して記録されたすべてのメッセージは、構成されたログ ファイルの両方に書き込まれ、stdout に直接表示されます。これにより、トラブルシューティングが簡素化され、メッセージに簡単にアクセスしてすぐに検査できるようになります。

以上がPython で Stdout とログ ファイルに同時にログを記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。