ホームページ >バックエンド開発 >Python チュートリアル >Pythonでlogging.StreamHandlerを使用してファイルとコンソールの両方にログを記録する方法?

Pythonでlogging.StreamHandlerを使用してファイルとコンソールの両方にログを記録する方法?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-18 19:00:29600ブラウズ

How to Log to Both File and Console in Python Using logging.StreamHandler?

Python でのファイルとコンソールの両方へのログ記録

Python のログ記録は、メッセージ処理のための堅牢な機能を提供します。デフォルトでは、メッセージは通常、指定されたログ ファイルに書き込まれます。ただし、これらのメッセージをコンソールに複製して、プログラム実行中にすぐに表示できるようにすることもできます。

これを実現するには、logging.StreamHandler クラスを利用します。これにより、ログを作成できます。標準出力ストリームである sys.stdout に出力します。次の手順に従ってください:

  1. ログ モジュールをインポートします: まず、ログ モジュールをスクリプトにインポートします。
  2. StreamHandler を構成します: logging.StreamHandler のインスタンスを作成し、出力ストリームの宛先 (コンソール出力の sys.stdout など) を指定します。ハンドラーのレベルを設定して、処理するメッセージをフィルターすることもできます。
  3. フォーマッタを設定: 出力メッセージをフォーマットするためのlogging.Formatter オブジェクトを定義します。希望の形式文字列を指定して、メッセージ レイアウトをカスタマイズできます。
  4. ハンドラーをルート ロガーにアタッチします: 構成済みの StreamHandler をルート ロガーに追加して、両方のログ ファイルにメッセージを記録できるようにします。そしてコンソール。これには、レベルの設定とハンドラーの追加が含まれます。

StreamHandler を構成する方法の例を次に示します。

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

# Create a StreamHandler using sys.stdout
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)

# Define a formatter and set it on the handler
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# Add the handler to the root logger
root = logging.getLogger()
root.addHandler(handler)</code>

これらの手順を実装すると、すべてのログ メッセージを簡単に出力できます。ログ ファイルとコンソールの両方に送信され、アプリケーションのログ アクティビティの包括的なビューが提供されます。

以上がPythonでlogging.StreamHandlerを使用してファイルとコンソールの両方にログを記録する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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