logger.debug
とlogger.info
の違いは何ですか?
logger.debug
はいつ印刷されますか?
これは、ロギング構成に依存します。デフォルト値は、使用されているフレームワークによって異なります。後から構成設定をINFOからDEBUGに変更すると、アプリケーション全体を再コンパイルせずに大量の(または逆の場合はそれよりも少ない)行が印刷されます。
どちらを使用するかを考えると、どのレベルで何を見たいかを考えることになります。 Log4Jなどの他のレベルについては、APIをご覧ください http://logging.Apache.org/log4j/1.2/apidocs/org/Apache/log4j/Level.html
"log4jの簡単な紹介" という記事をご覧になることをお勧めします。ログレベルの簡単な説明が含まれており、実際に使用する方法を示しています。ログレベルの基本的な考え方は、状況に応じてログに含まれる詳細度を設定できるようにすることです。たとえば、問題のトラブルシューティングを行う場合、ログを非常に詳細にしたいでしょう。本番環境では、警告とエラーのみを表示したい場合があります。
システムの各コンポーネントのログレベルは通常、構成ファイルのパラメーターを介して制御されるため、簡単に変更できます。コードには、レベルの異なるさまざまなログステートメントが含まれます。 Exception
に応答するとき、Logger.error
を呼び出すことができます。特定のポイントで変数の値を出力する場合は、Logger.debug
を呼び出します。プログラム内の構成可能なログレベルとログステートメントのこの組み合わせにより、アプリケーションがアクティビティをログに記録する方法を完全に制御できます。
少なくともlog4jの場合、ログレベルの順序は次のとおりです。
DEBUG < INFO < WARN < ERROR < FATAL
以下は、ログレベルがどのように機能するかを示すその記事の短い例です。
// get a logger instance named "com.foo"
Logger logger = Logger.getLogger("com.foo");
// Now set its level. Normally you do not need to set the
// level of a logger programmatically. This is usually done
// in configuration files.
logger.setLevel(Level.INFO);
Logger barlogger = Logger.getLogger("com.foo.Bar");
// This request is enabled, because WARN >= INFO.
logger.warn("Low fuel level.");
// This request is disabled, because DEBUG < INFO.
logger.debug("Starting search for nearest gas station.");
// The logger instance barlogger, named "com.foo.Bar",
// will inherit its level from the logger named
// "com.foo" Thus, the following request is enabled
// because INFO >= INFO.
barlogger.info("Located nearest gas station.");
// This request is disabled, because DEBUG < INFO.
barlogger.debug("Exiting gas station search");
可能なすべてのレベルのセットについての明確な説明、つまり:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
基本的には、ロガーの構成方法によって異なります。通常、開発中にデバッグ出力が書き出されますが、本番環境ではオフになります-または、特定の領域のデバッグ中にselectedデバッグカテゴリが書き出される場合があります。
優先順位を変えることのポイントは、特定のコンポーネントの詳細レベルをかなりきめ細かく調整できるようにすることです-そして、違いを確認するために(コードではなく)ロギング構成を変更するだけです。
これは非常に古い質問ですが、ここでは理解できないので、2セントを追加します。
すべてのレベルは、ユーザーのタイプに対応/マップします。
Log4j構成ファイルで選択したレベルによって異なります。
<Loggers>
<Root level="info">
...
レベルが「情報」(デフォルト)の場合、logger.debug(...)
はコンソールに出力されません。ただし、レベルが「デバッグ」の場合は出力されます。
コードの重要度レベルに応じて、次のレベルの中で最も正確なレベルを使用する必要があります。
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
logger.debugとlogger.infoの違いは何ですか?
これらは、すでに定義されているデフォルトレベルの一部にすぎません。必要に応じて、独自のレベルを定義できます。これらのレベルの目的は、コードを変更せずに、1つ以上のレベルを有効/無効にすることです。
logger.debugが出力されるとき??
構成でデバッグまたはそれ以上のレベルを有効にしたとき。