Django のコンソールにメッセージを記録する

Vaibhav Vaibhav 2022年4月14日
Django のコンソールにメッセージを記録する

マシンに一連のソフトウェアをインストールすると、ログファイルが見つかったり、そのアプリケーションのコンソール内にメッセージが出力されたりすることがよくあります。これらは、アプリケーションで発生するイベント、ソフトウェアが完了しているタスク、発生したエラー、警告などに関する情報を提供するログメッセージです。これらのメッセージは、ソフトウェア開発者がアプリケーションを改善し、ユーザーがアプリケーションにエラーレポートの共有を許可した場合にデバッグするのに役立ちます。

Django またはプロジェクトの他のフレームワークを使用する場合、通常、print ステートメントを使用してアプリケーションをデバッグします。出力物の声明は壮大です。それらは組み込みであり、非常に簡単に使用できます。しかし、この目的専用のパッケージまたはライブラリを使い始めれば、これを次のレベルに引き上げることができます。これらのライブラリを使用すると、ログメッセージのレベルを定義し、行番号やタイムスタンプなどの追加情報を簡単に出力できます。一部のライブラリでは、ログステートメントまたはメッセージに色を追加することもできます。

この記事では、Django プロジェクトのコンソールにメッセージを記録する方法を学びます。

組み込みの Python ライブラリを使用したログメッセージ logging

Python には、柔軟なイベントロギングシステムの実装を支援することを唯一の目的とする組み込みライブラリ logging が付属しています。この記事では、すべてを説明するのではなく、基本といくつかの重要なことだけを取り上げます。

logging を使用する場合、logger を使用してメッセージをコンソールに記録します。上記のように、ログメッセージには、ログメッセージの目的を示すいくつかのレベルがあります。このライブラリにはそのようなレベルが 5つあり、各レベルには優先順位番号が付けられています。たとえば、CRITICAL レベルの上位は 50 です。DEBUG の優先度は 10 です。INFOWARNING、および 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 #10
  • logging.INFO #20
  • logging.WARNING #30
  • logging.ERROR #40
  • logging.CRITICAL #50
  • logging.NOTSET #0

構成できるパラメーターは他にもあります。あなたはそれらについてもっと読むことができますここ

さらにいくつかの詳細については、次のリストを参照してください。

  • filename - basicConfig() メソッドには、すべてのメッセージがログに記録されるファイル名を設定するために使用できる filename パラメーターがあります。ファイル名を指定すると、ログメッセージはコンソールではなくこのファイルに記録されます。
  • filemode - basicConfig() メソッドには、言及されたファイルのオープンモードを定義するために使用される filemode パラメーターがあります。デフォルトでは、append を意味する"a"に設定されています。したがって、プログラムを実行するたびに、古いメッセージに新しいログメッセージが追加されます。
  • format - basicConfig() メソッドには、ログメッセージ構造をフォーマットするために使用できる format パラメーターがあります。<Level>:root:<Message> のようなデフォルトのフォーマットは、新しいフォーマットで上書きされます。

このライブラリの詳細については、こちらを参照してください。

著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.