次の四時に注意を払う必要があり、ログを出力します。
所定のレベルのログ
DEBUG、INFOログレベルに、出力が使用されなければならないか、条件がプレースホルダ印刷方法を使用して。大会は、作業効率を考慮して、ログ需要プログラムを印刷します。
反例を初めて目:
log.debug("输入参数信息id=" + id + ",obj=" + obj);
コンフィギュレーションアプリケーションを印刷する場合は、上記のコードに応じてレベルをWARN DEBUGレベルのログを出力し、ログが印刷されませんが、文字列連結操作を実行する。objがオブジェクトだけでなく、のtoStringの実装である場合( )の方法、システムリソースの無駄。
次のようにコード例は正しいです。
//使用条件判断形式
if (log.isDebugEnabled()) {
log.debug("输入参数信息id={}", id);
}
//使用占位符形式
log.debug("输入参数信息id={},obj={}", id, obj);
第二に、無効なログの印刷を避けます
DEBUGログ出力は、本番環境と選択的に出力INFOログを禁止します。
INFOを使用する場合は、ビジネス情報の振る舞いを記録したログファイルのための合理的なライフサイクルを設定しながら、ディスクスペースの回避不足するためには、出力を制御するようにしてください、期限切れのログをきれいにするログレベルをWARN。
繰り返し印刷を避けるため、例えば、コンフィギュレーション・加法=偽のログファイルを設定してください:
<logger name="com.test" additivity="false">
<level value="INFO" />
<appender-ref ref="logfile" />
</logger>
加法の特性プロフィール:
これは、子供が親ロガーロガー出力源(アペンダ)フラグを継承するかどうか、デフォルトでロガーロガーは、アペンダの親ロガーでサブロガーの出力である親アペンダを、継承する噴火です。出力アペンダの親ロガーのない出力のみで、自分のアペンダでfalseに加法セット、そしてサブロガー。
第三に、差別のエラーログ
ガイドによって再試行することができWARN、ERRORログレベルがエラーに関係しているではなく、印刷エラーは、いくつかのビジネスの例外として、エラーログに発生することは、この場合には、このようなユーザ入力パラメータエラーとして、レコードを復元することができますユーザは、出力レベルがERRORであれば相談できるサイトを復元するためにログインすると、イベントは明らかに不合理である人間の介入が必要になると言います。ERRORレベルが唯一のシステム論理エラー、異常や重要なビジネスルールの違反を記録ので、他のエラーがWARNレベルに分類することができます。
第四に、記録の内容の整合性を確保
コンテンツのログサイトは、コンテキスト情報と例外スタック情報は、以下の点に注意して必要なプリントを含める必要があります:
例えば異常な出力スタック1記録異常は、必要があります。
log.error("xxx" + e.getMessage(), e);
2.ログ出力オブジェクトのインスタンスであれば、それ以外の場合は、オブジェクトのhashCode値が本当の意味を持っていない印刷され、クラスのインスタンスは、toStringメソッドをオーバーライドすることを確実にします。
参考:「非常に効率的なコードのJava開発マニュアル」
推奨読書
1.SpringBootシリーズ-ロギング設定の基本
2.SpringBootはJWTは、認証局が達成一体化
あなたに1つの分のJWTの認定を取る3.!
YMLエレガントなプロファイルを読み込む方法4.SpringBoot?
5.SpringBootでどのように柔軟なデータの暗号化と復号化関数インタフェースの実装?
期間限定でJava、Redisの、MongoDBのは、MySQL、カバー、フリーのJava関連の情報を受信飼育係、春の雲、ダボ/カフカ、Hadoopの、HBaseのを、FLINK 高い同時分布し、ビッグデータと機械学習技術。
無料の公共を受信する数の下に見ます: