Pythonでのロギング

Pythonでのロギング

ロギングは、プログラマのツールボックスで非常に便利なツールです。 プログラムの流れをよりよく理解し、開発中には考えもしなかったシナリオを発見するのに役立ちます。

ログは、アプリケーションが通過するフローを常に見ている余分な目を開発者に提供します。 どのユーザーまたはIPがアプリケーションにアクセスしたかなどの情報を保存できます。 エラーが発生した場合、エラーが発生したコード行に到達する前のプログラムの状態を知らせることにより、スタックトレースよりも多くの洞察を提供できます。

適切な場所から有用なデータを記録することで、エラーを簡単にデバッグできるだけでなく、そのデータを使用してアプリケーションのパフォーマンスを分析し、スケーリングを計画したり、使用パターンを調べてマーケティングを計画したりできます。

Pythonは、標準ライブラリの一部としてロギングシステムを提供するため、アプリケーションにロギングをすばやく追加できます。 この記事では、このモジュールを使用することがアプリケーションにロギングを追加する最良の方法である理由と、すぐに開始する方法を学び、利用可能な高度な機能のいくつかを紹介します。

無料ボーナス: link:[5 Thoughts On Python Mastery]、Python開発者向けの無料コースで、Pythonのスキルを次のレベルに引き上げるのに必要なロードマップと考え方を示します。

ロギングモジュール

Pythonのログモジュールは、エンタープライズチームだけでなく初心者のニーズにも対応できるように設計された、すぐに使用できる強力なモジュールです。 ほとんどのサードパーティPythonライブラリで使用されるため、ログメッセージをそれらのライブラリのライブラリと統合して、アプリケーションの同種のログを生成できます。

Pythonプログラムへのロギングの追加は、次のように簡単です。

import logging

ロギングモジュールをインポートすると、「ロガー」と呼ばれるものを使用して、表示したいメッセージを記録できます。 デフォルトでは、イベントの重大度を示す5つの標準レベルがあります。 それぞれに、その重大度のレベルでイベントを記録するために使用できる対応するメソッドがあります。 定義されたレベルは、重大度の高い順に次のとおりです。

  • デバッグ

  • INFO

  • 警告

  • エラー

  • クリティカル

ロギングモジュールは、多くの設定を行うことなく開始できるデフォルトのロガーを提供します。 次の例に示すように、各レベルに対応するメソッドを呼び出すことができます。

import logging

logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

上記のプログラムの出力は次のようになります。

WARNING:root:This is a warning message
ERROR:root:This is an error message
CRITICAL:root:This is a critical message

出力には、各メッセージの前の重大度レベルと、ロギングモジュールがデフォルトのロガーに与える名前である「+ root 」が表示されます。 (ロガーについては後のセクションで詳しく説明します。)コロン( `:+`)で区切られたレベル、名前、メッセージを表示するこの形式は、タイムスタンプなどを含めるように構成できるデフォルトの出力形式です。行番号、およびその他の詳細。

`+ debug()`および ` info()`メッセージがログに記録されなかったことに注意してください。 これは、デフォルトでは、ロギングモジュールが重大度レベルが「 WARNING +」以上のメッセージをログに記録するためです。 必要に応じて、すべてのレベルのイベントをログに記録するようにロギングモジュールを構成することで、これを変更できます。 構成を変更して独自の重大度レベルを定義することもできますが、使用している一部のサードパーティライブラリのログと混同する可能性があるため、通常はお勧めできません。

基本設定

+ basicConfig(** + ` + kwargs +