Django のコンソールにメッセージを記録する
マシンに一連のソフトウェアをインストールすると、ログファイルが見つかったり、そのアプリケーションのコンソール内にメッセージが出力されたりすることがよくあります。これらは、アプリケーションで発生するイベント、ソフトウェアが完了しているタスク、発生したエラー、警告などに関する情報を提供するログメッセージです。これらのメッセージは、ソフトウェア開発者がアプリケーションを改善し、ユーザーがアプリケーションにエラーレポートの共有を許可した場合にデバッグするのに役立ちます。
Django またはプロジェクトの他のフレームワークを使用する場合、通常、print ステートメントを使用してアプリケーションをデバッグします。出力物の声明は壮大です。それらは組み込みであり、非常に簡単に使用できます。しかし、この目的専用のパッケージまたはライブラリを使い始めれば、これを次のレベルに引き上げることができます。これらのライブラリを使用すると、ログメッセージのレベルを定義し、行番号やタイムスタンプなどの追加情報を簡単に出力できます。一部のライブラリでは、ログステートメントまたはメッセージに色を追加することもできます。
この記事では、Django プロジェクトのコンソールにメッセージを記録する方法を学びます。
組み込みの Python ライブラリを使用したログメッセージ logging
Python には、柔軟なイベントロギングシステムの実装を支援することを唯一の目的とする組み込みライブラリ logging
が付属しています。この記事では、すべてを説明するのではなく、基本といくつかの重要なことだけを取り上げます。
logging
を使用する場合、logger
を使用してメッセージをコンソールに記録します。上記のように、ログメッセージには、ログメッセージの目的を示すいくつかのレベルがあります。このライブラリにはそのようなレベルが 5つあり、各レベルには優先順位番号が付けられています。たとえば、CRITICAL
レベルの上位は 50 です。DEBUG
の優先度は 10 です。INFO
、WARNING
、および ERROR
の優先度はそれぞれ 20、30、および 40 です。
DEBUG
- アプリケーションをデバッグするためのメッセージを出力するために使用されます。INFO
- 確認、確認、成功メッセージなどの一般的なメッセージを出力するために使用されます。WARNING
- 警告、入力による予期しないイベント、将来発生する可能性のあるいくつかの問題の兆候などを報告するために使用されます。ERROR
- アプリケーションの実行を停止しない可能性が最も高い重大な問題について警告するために使用されます。CRITICAL
- ユーザーデータに損害を与えたり、ユーザーデータを公開したり、セキュリティを妨害したり、一部のサービスを停止したり、アプリケーション自体を終了したりする可能性のある重大な問題について警告するために使用されます。
logging
ライブラリには、メッセージをログに記録するために使用できる関数があります。実例を示すために、以下のコードを確認してください。
import logging
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")
デフォルトでは、ロガーは debug
および info
レベルのログメッセージをログに記録しません。それらを有効にするには、ロガーのレベルを定義する必要があります。次のコードは同じことをします:
import logging
logging.basicConfig(level=logging.NOTSET) # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")
レベルが INFO
に設定されている場合、優先順位番号が INFO
のレベル以上のすべてのレベルのみが出力されます。次のプログラムは、このプロセスを示しています。
import logging
logging.basicConfig(level=logging.INFO) # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")
basicConfig()
メソッドを使用してレベルを定義できます。合計で、level
パラメーターは 6つの値を受け入れることができます。
logging.DEBUG
#10logging.INFO
#20logging.WARNING
#30logging.ERROR
#40logging.CRITICAL
#50logging.NOTSET
#0
構成できるパラメーターは他にもあります。あなたはそれらについてもっと読むことができますここ。
さらにいくつかの詳細については、次のリストを参照してください。
filename
-basicConfig()
メソッドには、すべてのメッセージがログに記録されるファイル名を設定するために使用できるfilename
パラメーターがあります。ファイル名を指定すると、ログメッセージはコンソールではなくこのファイルに記録されます。filemode
-basicConfig()
メソッドには、言及されたファイルのオープンモードを定義するために使用されるfilemode
パラメーターがあります。デフォルトでは、append
を意味する"a"
に設定されています。したがって、プログラムを実行するたびに、古いメッセージに新しいログメッセージが追加されます。format
-basicConfig()
メソッドには、ログメッセージ構造をフォーマットするために使用できるformat
パラメーターがあります。<Level>:root:<Message>
のようなデフォルトのフォーマットは、新しいフォーマットで上書きされます。
このライブラリの詳細については、こちらを参照してください。