SLF4J少しスキル

著作権:コードワードは容易ではない、ソースを明記してください~~ https://blog.csdn.net/m0_37190495/article/details/88636139
再現、ソースを明記してください:
:オリジナルはで始まる http://www.zhangruibin.com
から記事 RebornChangさんのブログ

SLF4J少しスキル

Web開発を言えば、それはモジュールが不可欠であるログ多くのモジュールに分割されます。ここで収集されたログの統計解析は、これらの話すことはありません、だけで一般的に小規模なスキルポイントの開発に使用することを言います。
私は最初の二つの質問を教えます:

時間の印刷ログ、「{}」のどのような役割がありますか?

印刷ログ時刻、「+」との違い「」何がありますか?

印刷ログ、異常情報は、キャッチ「logger.error( 『エラーメッセージ:』 + e.getMessage())」に印刷する場合と「logger.error( 『エラーメッセージ:』 + e)は」との間の差であります何?

7つのログ設定、およびこれの意味は言わないだろうどのような設定のため、ブロガーは、このセクションでは、その時に、次の、寒さはほとんど知識を騙していると言います。

まず、「{}」の役割その:

logger.info()中的‘{}’

logger.info()、{} 'プレースホルダ、位置に基づいて、プレースホルダSLF4Jであり、データ対応プレースホルダーオブジェクトを充填されている取得します。
情報セクションのロガーレベルのソースにSLF4Jを見てください:

 void info(String var1, Object var2);

 void info(String var1, Object var2, Object var3);

 void info(String var1, Object... var2);

 void info(String var1, Throwable var2);
 
 void info(Marker var1, String var2);

 void info(Marker var1, String var2, Object var3);

 void info(Marker var1, String var2, Object var3, Object var4);

 void info(Marker var1, String var2, Object... var3);

 void info(Marker var1, String var2, Throwable var3);

我々上記、情報レベルのメソッド、タイプStringの最初のパラメータから見ることができ、2番目のパラメータは、オブジェクトのタイプ(可変パラメータがオブジェクト注意... VAR2)があるのでに直接書き込みます。

 logger.info("这里只写一段字符串"+"或者再拼接上一串字符串,是没有问题的")
 因为这时候走的是 void info(String var1, Object... var2);方法进行日志的输出打印。

これは私がPersonオブジェクトは、オブジェクトがzhangsanで持っている場合は、私は、この情報ジョー・スミス、我々はこれを行うことができ、この時間をプリントアウトしたいです:

logger.info("这就是zhangsan的信息:{}",zhangsan.toString());

注:私はこの文zhangsan名前を印刷したい場合は、それを書くためにどのようにすべきですか?

logger.info("这就是zhangsan的信息:{};zhangsan的名字是:{}。",zhangsan.toString(),zhangsan.getName.toString());

Iは、INFOレベルで、それを理解し、この時間は、「{}」文字列パラメータを有する情報方法は、プレースホルダ「{}」を有効にするためのプレースホルダです。

そして、何がある「」、言う「+」との間の差

図に示した方法によるとSLF4J我々は「+」のステッチパラメータスティングのそのタイプのためである、「」他のパラメータ宣言および質量参加があり、推測することができ、一部の人が言うことを、とにかく、私は、ログを印刷したい、と私はtoStingを(使用している)とし、「+」スプライスがリストにないでしょうか?
ここで「{}」プレースホルダ効果に関する。最初の文字列に加えてプレースホルダが「{}」の位置に充填されたパラメータ・タイプであるため、完全な使用のtoString()ようにした後、「+」スプライシングを使用して、次に「{}」は動作しません。

キャッチに印刷例外情報「logger.error( 『エラーメッセージ:』 + e.getMessage())」と「logger.error( 『エラーメッセージ:』 + e)の」差とは何ですか

getMassageたjava.lang.Throwableの使用と解釈の内部を見てみましょう:
`` `

/**
 * Returns the detail message string of this throwable.
 *
 * @return  the detail message string of this {@code Throwable} instance
 *          (which may be {@code null}).
 */
 
public String getMessage() {
    return detailMessage;
}
/**
 * Specific details about the Throwable.  For example, for
 * {@code FileNotFoundException}, this contains the name of
 * the file that could not be found.
 *
 * @serial
 */
private String detailMessage;

```

一例として、共通のヌルポインタ例外:
e.getMessage()ので、私たちのログを印刷するlogger.error()を使用する場合には行うことができ、情報が印刷されませんスタック、それがNULLポインタであるあなたを教えています。

logger.error("异常:",e.getMessage(),e);

彼は、小さな細部比較的平易され、学生が自分の下、歓迎の議論と交換補正を取得追求することを望むかもしれないと述べました。

おすすめ

転載: blog.csdn.net/m0_37190495/article/details/88636139
おすすめ