1. SLF4Jとlog4j2
SLF4Jは、ログ・インタフェースを直接使用することができないでロギング(log4jの、logback、log4j2等)を達成するために使用される特定のフレームの組み合わせを必要とします。
1.1なぜ、特定の実装を使用して、ログ・インターフェースを使用する必要はありません
インタフェース仕様は、あなたがインターフェイスの顔だけを使用し、異なるロギング実装を持つことができ、ログを定義するアプリケーションは無料ですので、(SLF4Jパッケージは、特定のパッケージを達成するために直接ログを使用しないで、使用されています)ログコードに関連するコードを変更する必要なしに変更の実装フレームワークログ、。要するに:変更ログが達成したときにだけ変更ジャーパッケージは、直接特定のロギング実装を使用してサービスコード場合、ユーザーには直接影響を記録しないように実装されている、あなたはビジネス関連の呼び出しを変更するには、ログインする必要があります。
2 log4j2プロフィール
これは主にコンフィギュレーション、アペンダ、ロガー、プロパティいくつかのプロパティを構成されてい
2.1構成プロパティ
monitorinterval]の状態など複数のプロパティがあります。
ステータス:「警告」「トレース」、「デバッグ」、「情報」:例えば、ログレベルlog4j2フレーム自体を制御するために、ように構成することができます。
monitorinterval]の:すべての秒数を再読み込み設定ファイルには、設定を変更するには、アプリケーションのケースを再起動することはできません。熱い展開に似て
2.2アペンダプロパティ
出力ソース、ログ出力の定義。
コンソール:コンソールへのログ出力
ファイル:指定したファイルへのログ出力は、ファイルのパスを設定する必要があります
RollingRandomAccessFile:また、ファイルに出力しますが、ファイルが一定のサイズに達するとサポートは、新しいファイルから他のログに書き込まれます。
fileNameに現在のログファイルの場所とファイル名を指定する
指定するときfilePatternローリングが発生し、ファイル転送ルールの名前を変更する
ファイルボリュームが指定された値よりも大きい場合SizeBasedTriggeringPolicyのサイズを指定した場合、トリガーローリング
番号がファイルを指定DefaultRolloverStrategy最も保存された
この構成は必要TimeBasedTriggeringPolicyをそしてfilePattern組合せは、注目filePatternコンフィギュレーションファイル名の変更規則は$ {FILE_NAME}である- %のD { YYYY-MM-DD HH-MM} - %I、 粒子径[mm]の最小時間、すなわち分
TimeBasedTriggeringPolicyはサイズが指定され1は、1分ごとに新しいファイルを生成するために結合されます。変更%のD {YYYY-MM-DD場合 HH}、 時間の最小粒子サイズ、各時間は、ファイルを生成し
非同期:非同期、AppenderRefによって(典型的には設定RollingRandomAccessFileするために使用される)ソース非同期のどの出力を指定する必要
2.3ロガープロパティ
名前は、パッケージ名を入力することができ、それは、パッケージ内の異なるファイルで異なるパスに出力してもよいです
レベル:出力ログのどのレベル
加法:継承が、それが本当であれば、出力ファイルに対応する親クラスのロガーの出力は再びログインしますが、通常はfalseに設定されているかどうか
<ロガー名= "rollingRandomAccessFileLogger"レベル= "トレース"加法= "真"> <AppenderRef REF = "RollingRandomAccessFile" /> </ロガー>
2.4プロパティプロパティ
構成を参照するために他の時点で、定数を定義するために使用される、構成は任意です
3 log4j2ケース
<?XMLバージョン= "1.0"エンコード= "UTF-8"?>
<! -ルートパス- > < "WARN" =コンフィギュレーションステータス パッケージ = "org.apache.logging.log4j.core.patternを"> <プロパティ> <! - > -出力フォーマット定義ファイル、フォーマットを書くの回避の重複に直接戻って参照することができる 。<プロパティ名= "PATTERN">%{:MM:D MM-DD-YYYY HH SS.SSS} | - %を- 5level [%スレッド]のC%[%のL] - | N-%MSG%</プロパティ> </プロパティ> <! - -パスの出力を定義します> <中アペンダ> <コンソール名= "CONSOLE"ターゲット= " system_out "> <= PatternLayoutはパターン" $ {}パターン「/> </コンソール> <RollingFile名= "トレースログ" fileNameに= "ログ/ TraceLog.log" filePattern
= "ログ/トレースログ- $$ {日付:YYYY-MM} / APP-%D {MM-DD-YYYY} - %のi.log.gz"> <PatternLayoutはパターン= "%MSG%N" /> <ポリシー> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicyサイズ= "250メガバイト" /> </ポリシー> </ RollingFile> <非同期名= "AsyncTraceLog"> <AppenderRef REF = "トレースログ" /> </非同期> <非同期名= "AsyncCONSOLE "> <AppenderRef REF =" CONSOLE」/> </非同期> </アペンダ> <! -按照不同的包路径和日志文件路径关联在一起- > <ロガー> <AsyncLogger名= "com.log.broker" レベル
= "情報"加法= "偽"> <AppenderRef REF = "AsyncCONSOLE" /> </ AsyncLogger> <ロガー名= "com.log.trace" レベル = "情報"加法= "偽"> <AppenderRef REF =」 AsyncTraceLog」/> </ロガー> <ルートレベル= "情報"> <AppenderRef REF = "AsyncCONSOLE" /> </ルート> </ロガー> </ configuration>の
いくつかの一般的に使用されるファイルパスのプレースホルダ:
%のD {HH:MM:SS.SSSは}ミリ秒までの出力時間を表す %のT出力電流スレッド名 %-5level出力ログレベル- 5右場合、整列左および固定出力5つの文字を表す0より小さい場合%MSGログテキスト %Nラップ 他の一般のプレースホルダは、次のとおり %のようLog4j2Test.javaのようなクラスF出力場合、ファイル名、 %のL出力行数 %の出力メソッド名M クラス名を含む出力ラインの数は、%L文メソッド名、ファイル名、行番号
:この記事はから来てhttps://blog.csdn.net/vbirdbest/article/details/71751835