2

Python の詳細レベルとは何ですか。私はユニットテストでそれを見ます。

ドキュメントでは、冗長レベルが高いほど、より多くの情報が出力されると単純に述べています。しかし、 より多くの意味は何ですか?つまり、どのメッセージがより高いレベルで出力され、どのメッセージが出力されないのでしょうか?

また、ロギングの冗長性を見つけてください。

ログの詳細レベルが [0, 50] であり、unittest は単なるユニット番号であるため、それらは異なると思います。単体テストの各詳細レベルの違いを知りたいだけです。

4

1 に答える 1

1

詳細レベルは、ロギングのみに関連しています。単体テストでは、情報のログ記録のためにそれを見つけます。

注:数値ではなくlogging.INFO、定数名( としてレベルを使用する方が Pythonic です。logging.DEBUG

これらのレベルによって、取得する情報の量が決まります。たとえば、ERROR単体テストを実行するためにレベルを設定すると、単体テストが失敗したケースのみが表示されます。に設定するとDEBUG、変数の値(assertステートメントなど)など、より多くの(実際には最も多くの)情報が得られます。

プログラムにさまざまなレベルのログがあり、ユーザーにさまざまなレベルの情報を表示したい場合に便利です。たとえば。通常、致命的なエラーを除いて、ユーザーに内部の詳細を見せたくありません。したがって、ユーザーはプログラムを FATAL または CRITICAL モードで実行します。ただし、何らかのエラーが発生した場合は、そのような詳細が必要になります。この場合、プログラムをデバッグ モードで実行します。これらのレベルでもカスタム メッセージを発行できます。たとえば、プログラムの古いバージョンとの後方互換性を提供しているlogging.warn()場合は、ログ レベルが警告以下の場合にのみ発行される警告を使用してそれらを警告できます。


ドキュメント:

レベル関連のもの

デフォルトのレベルとレベル名。これらは、対応する名前を持つ正の値のセットに置き換えることができます。疑似レベルの NOTSET がありますが、これは実際にはユーザー定義レベルの下限としてのみ存在します。ハンドラーとロガーは NOTSET で初期化されるため、ユーザー定義のレベルであってもすべてのメッセージがログに記録されます。

CRITICAL = 50 
FATAL = CRITICAL
ERROR = 40 
WARNING = 30 
WARN = WARNING
INFO = 20 
DEBUG = 10 
NOTSET = 0
于 2012-07-26T05:02:00.083 に答える