まず、基本的な
、情報をログ情報の出力先appenders-を記録し、ログ情報をlayouts-、レベル出力フォーマットグレード:Log4jには三つの重要なコンポーネントがあります。
レベルは、ログ情報を、レベル:レベルの優先順位のログがOFF、FATAL、ERROR、WARN、分割され INFO、DEBUG、ALL またはカスタムレベル。log4jは、ERRORあるWARN最高から最低の優先度に、唯一の4つのレベルを使用するINFO、DEBUGをお勧めします。ここではレベルによって定義され、あなたは情報の適切なレベルのアプリケーションのログを記録するようにスイッチを制御することができます。例えば、ここでINFOレベルの定義において、およびこのレベルを超えるだけ等しくし、その後処理、すべてのデバッグレベルのログ情報の適用は、印刷されません。ALL:OFF、すべてのログを出力します:すべてのログ出力を閉じます。
Appenders-情報の出力先をログ:ログはコンソールまたはファイルに出力されます指定します。
- ConsoleAppender(コンソール)
- FileAppender(ファイル)
- DailyRollingFileAppender(毎日ログファイルを生成)
- RollingFileAppender(ファイルサイズが指定したサイズに達したときに新しいファイルを作成します)
- WriteAppender(ログストリーム形式情報は、任意の指定された場所に送信されます)
- JDBCAppender(データベースにログ情報を保存)
情報出力形式のログをLayouts-:ログ情報の表示内容を制御します。
- フルネーム%cの出力ログ情報がクラスに属し
- %のD {YYYY-MM-DD HH:MM:SS}、同様の出力:2019年5月29日9時20分21秒のような日付や時刻%Dログ出力時点、
- ログ情報が属するクラス%F出力のクラス名
- 発生場所%Lの出力ログ・イベント、それらのクラスの最初の数行に、すなわち出力ログ情報文
- %のMの出力情報は、ログ(エラー)、エラーとして、コードで指定します
- %のN出力キャリッジリターン、現在のオペレーティングシステムと、特に、キャリッジリターン
- FATAL%P出力優先度、即ちDEBUG、INFO、WARN、ERROR、
- アプリケーションからの%のR出力を出力する起動ログ情報が費やされたミリ秒数であります
- %のT出力は、スレッドのイベントログ名を生成します
- NDCの%のX出力電流スレッド(ネスト診断コンテキスト)
- 出力はログメッセージ%Fに生成されるファイル名
- %%は「%」文字を出力します
log4jの構成は、1つは、2つのファイルフォーマットをサポートXML(標準一般化マークアップ言語中のアプリケーション)フォーマット、一つのJavaプロパティファイルlog4j.properties(キー=値)です。
log4j.propertiesは、設定ファイルの説明としてファイル:
1 log4j.rootLogger = デバッグコンソール、D、E 2 3 log4j.appender.Console = org.apache.log4j.ConsoleAppender 4 log4j.appender.Console.Target = のSystem.out 5 log4j.appender.Console.layout = ORG。 apache.log4j.PatternLayout 6 log4j.appender.Console.layout.ConversionPattern = [%P]%のD {YYYY-MM-DD HH:MM:SS、SSS} [%のT:%1] - %のMの%N 7 8 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender 9 log4j.appender.D.File = E:// ログ/ log.log 10 log4j.appender.D.Append = 真 11log4j.appender.D.Threshold = DEBUG 12 log4j.appender.D.layout = org.apache.log4j.PatternLayout 13 log4j.appender.D.layout.ConversionPattern =%-d {YYYY-MM-DD HH:MM:SS } [%T:%のR] - [%のP]%のM%N 14 15 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender 16 log4j.appender.E.File = E:// ログ/ error.logファイル 17 log4j.appender.E.Append = trueを 18 log4j.appender.E.Threshold = ERROR 19 log4j.appender.E.layout = org.apache.log4j.PatternLayout 20 log4j.appender.E.layout.ConversionPattern =%-d {YYYY-MM-DD HH:MM:SS} [%T:%のR] - [%P]%のm個の%nを
log4j.appender.appenderName = fully.qualified.name.of.appender。クラス log4j.appender.appenderName.option1 = VALUE1 ... log4j.appender.appenderName.optionN =値N
log4j.appender.appenderName.layout = fully.qualified.name.of.layout。クラス log4j.appender.appenderName.layout.option1 = VALUE1 ... log4j.appender.appenderName.layout.optionN =値N
<! -のhttps:// mvnrepository.com/artifact/log4j/log4j - > <依存> <groupIdを> log4jの</ groupIdを> <たartifactId> log4jの</たartifactId> <バージョン> 1.2.17 </バージョン> < /依存関係>
図2に示すように、ログの形式と内容を定義します。(:XMLまたはプロパティの2つのメソッドをサポート)
XML:
<?xml version = "1.0"エンコード= "UTF-8"?> <DOCTYPEのlog4jの:!設定SYSTEM "log4j.dtd"> <log4jの:設定のxmlns:log4jの= 'のhttp://jakarta.apache.org/log4j / '> <アペンダ名= "コンソール" クラス = "org.apache.log4j.ConsoleAppender"> <レイアウトクラス = "org.apache.log4j.PatternLayout"> <PARAM NAME = "ConversionPattern"値= "[%のP] %D {YYYY-MM-DD HH:MM:SS、SSS} [%T:%L] - %M%N "/> </レイアウト> </アペンダ> <アペンダ名=" D " クラス =" ORG .apache.log4j.DailyRollingFileAppender "> <paramの名前= "ファイル"値= "E://logs/log.log" /> <PARAM NAME = "追加"値= "偽" />paramの名前= "ファイル"値= "E://logs/log.log" /> ます。<param name = "しきい値"値= "デバッグ" /> <レイアウトクラス = "org.apache.log4j.PatternLayout"> <PARAM NAME = "ConversionPattern"値= "% - D {YYYY-MM-DD HH:MM:SS} [%T:%のR] - [%のP]% m個の%N "/> </レイアウト> </アペンダ> <アペンダ名=" E " クラス = "org.apache.log4j.DailyRollingFileAppender"> <PARAM名= "ファイル"値=" E://ログ/エラー.logの"/> <PARAM NAME ="追加」値= "偽" /> <PARAM NAME = "閾値"値= "エラー" /> <レイアウトクラス = "org.apache.log4j.PatternLayout"> <PARAM名= "ConversionPattern" <ロガー名= "E"加法> = "true"を </レイアウト> </アペンダ> <レベル値= "エラー" /> <アペンダ-REF REF = "E" /> </ロガー> <ロガー名= "D"加法= "真"> <レベル値= "デバッグ" /> <アペンダ-REF REF = "D" /> </ロガー> <ルート> <レベル値= "デバッグ" /> <アペンダ-REF REF = "コンソール" /> <アペンダ-REF REF = "D" /> <アペンダ-REF REF = "E" /> </ルート> </ log4jの:設定>
プロパティ:
1 log4j.rootLogger = デバッグコンソール、D、E 2 3 log4j.appender.Console = org.apache.log4j.ConsoleAppender 4 log4j.appender.Console.Target = のSystem.out 5 log4j.appender.Console.layout = ORG。 apache.log4j.PatternLayout 6 log4j.appender.Console.layout.ConversionPattern = [%P]%のD {YYYY-MM-DD HH:MM:SS、SSS} [%のT:%1] - %のMの%N 7 8 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender 9 log4j.appender.D.File = E:// ログ/ log.log 10 log4j.appender.D.Append = 真 11log4j.appender.D.Threshold = DEBUG 12 log4j.appender.D.layout = org.apache.log4j.PatternLayout 13 log4j.appender.D.layout.ConversionPattern =%-d {YYYY-MM-DD HH:MM:SS } [%T:%のR] - [%のP]%のM%N 14 15 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender 16 log4j.appender.E.File = E:// ログ/ error.logファイル 17 log4j.appender.E.Append = trueを 18 log4j.appender.E.Threshold = ERROR 19 log4j.appender.E.layout = org.apache.log4j.PatternLayout 20 log4j.appender.E.layout.ConversionPattern =%-d {YYYY-MM-DD HH:MM:SS} [%T:%のR] - [%P]%のm個の%nを
図3は、(フォローアップに補足より深く理解した上で、慎重な分析なし)のlog4jを初期化します
-
BasicConfigurator.configureは(): - 、レベルログPatternLayoutはは "%m個の%のN%の-4R [%がT]%-5p%C%X" に設定しながら、この方法は、ConsoleAppenderルートロガーを追加するために、単純なlog4jの初期化ですデバッグします。
-
PropertyConfigurator.configure(文字列configFilenameは):書くためにキーを使用して設定ファイルを読み込みます。
- DOMConfigurator.configure(文字列のファイル名):フォームXML設定ファイルを読み込みます。
4、log4jのを使用しています
各クラスは、Logger.getLoggerメソッドを使用してログオンする必要があり、文字列を渡します(通常は、完全なクラス名)Loggerオブジェクトを取得します。Loggerオブジェクトは、静的最終として定義されます。
クラスXがある場合は、以下の3つの式は、同じパッケージcom.xxxが可能です。
Logger.getLogger(「com.xxx.X」);
Logger.getLogger(X.class.getName())。
Logger.getLogger(X.class)。
参考:https://juejin.im/entry/585d1f36da2f6000658485ee