記事のディレクトリ
詳細およびlog4j2 1つのlog4j設定
概念の1.1説明
1.1.1 log4jのブリーフ
Log4j
で使用して、ロギングライブラリ、我々はログ情報を搬送(等コンソール、ファイル、データベース、)先を制御することができるが、我々はまた、各ログの出力形式を制御することができ、各ログ情報のレベルを定義することによって、我々はこれは、より細かく生成プロセスのログを制御することができます。Apache
Java
Log4j
1.1.2 Log4j2ブリーフ
Apache Log4j 2
Log4j
それは前任者よりも、エスカレーション、Log4j 1.x
大幅に強化されています、と申し出Logback
利用可能な多くの改良、および修正Logback
の問題アーキテクチャのいくつかを。
今、最高のJava
ロギングフレームワークLog4j2
ではなく、1。公式テストによると、マルチスレッド環境では、さらに優れたLog4j2非同期ログのパフォーマンスをことが示されています。非同期ログには、Log4j2
実行するために別のスレッドを使用するI/O
操作を、大幅にアプリケーションのパフォーマンスを向上させることができます
1.2 pom.xmlファイル
最初は除外することが必要であるspringboot
内部のデフォルトlog
設定の参照を
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.9.RELEASE</version>
<!-- 排除默认日志配置 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 引入log4j2的jar包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<version>RELEASE</version>
</dependency>
参照の1.3 log4j.properties
application.properties
プロファイルに従います
#配置日志
logging.config=classpath:log4j.properties
1.4 log4j.propertiesの説明
1.4.1 rootLoggerプロパティ
log4j.properties
ファイルの説明
log4j.rootLogger = level,appenderName1,appenderName2, .....
level
これは、分割され、ログ優先度であるOFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
か、のレベルのカスタマイズ
level
デフォルトの優先順位:ALL < DEBUG < INFO <WARN < ERROR < FATAL < OFF
appenderName
ログ情報出力位置を、出力先の複数を同時に指定することができ
1.4.2出力先アペンダプロパティ
Appender
構成:
log4j.appender.appenderName = Log4j提供的appender类
log4j.appender.appenderName.属性名 = 属性值
.....
log4j.appender.appenderName.属性名 = 属性值
Log4j
提供されるappender
以下5
の種は、それぞれのログ情報を出力することができる5
異なるプラットフォーム
- org.apache.log4j.ConsoleAppender(コンソール)
- org.apache.log4j.FileAppender(ファイル)
- org.apache.log4j.DailyRollingFileAppender(毎日ログファイルを生成)
- org.apache.log4j.RollingFileAppender(ファイルサイズは新しいファイルを作成するときに指定したサイズに達します)
- Org.apache.log4j.WriterAppender(ログストリーム形式情報は、任意の指定された場所に送信されます)
1.4.2.1 ConsoleAppender
Threshold=WARN
:出力ログメッセージの指定された最小レベル。
ImmediateFlush=true
:デフォルト値は、すべてのメッセージがすぐに出力されることを意味本当です。
Target=System.err
:デフォルトは次のとおりです。System.outには、出力コンソールを指定します
1.4.2.2 FileAppender
Threshold=WARN
:出力ログメッセージの指定された最小レベル。
ImmediateFlush=true
:デフォルト値は、すべてのメッセージがすぐに出力されることを意味本当です。
File=mylog.txt
:へニュース出力mylog.txt
ファイル。
Append=false
:デフォルト値がされtrue
、ファイルに指定され、false
それが指定されたメッセージ・ファイルの内容を上書きを指します。
1.4.2.3 DailyRollingFileAppender
Threshold=WARN
:出力ログメッセージの指定された最小レベル。
ImmediateFlush=true
:デフォルト値はtrue
、すべてのメッセージがすぐに出力されることを意味します。
File=mylog.txt
:へニュース出力mylog.txt
ファイル。
Append=false
:デフォルト値がされtrue
、ファイルに指定され、false
それが指定されたメッセージ・ファイルの内容を上書きを指します。
DatePattern=”.”yyyy-ww
:毎週新しいファイルを作成毎週論文を、ローリング。もちろん、あなたが指定することができます月、周、天、时和分
。すなわち、次の形式に対応します:
- YYYY-MM "":月刊
- YYYY-WW "":毎週
- "" YYYY-MM-DD:日
- YYYY-MM-DD-A "":一日二回
- YYYY-MM-DD-HH "":1時間あたり
- YYYY-MM-DD-HH-MM "":分
1.4.2.4 RollingFileAppender
Threshold=WARN
:出力ログメッセージの指定された最小レベル。
ImmediateFlush=true
:デフォルト値は、すべてのメッセージがすぐに出力されることを意味本当です。
File=mylog.txt
:Mylog.txtニュースファイルに出力。
Append=false
:デフォルト値はtrueで、今後のニュース增加
、指定したファイルには、誤った手段は、メッセージという覆盖
ファイルの内容が指定されています。
MaxFileSize=100KB
:サフィックスができるKB, MB
いずれかのGB
ログファイルがこのサイズに達したとき、それは自動的に元のコンテンツへ移動しようとスクロールします。mylog.log.1
ファイル。
MaxBackupIndex=2
:指定のスクロールを発生させることができるファイルの最大数。
1.4.3書式レイアウトログ情報
ログのフォーマット構成:
log4j.appender.appenderName.layout = Log4j提供的layout类
log4j.appender.appenderName.layout.属性 = 值
.....
log4j.appender.appenderName.layout.属性 = 值
Log4j
レイアウトは次のように提供しています:
- org.apache.log4j.HTMLLayout、(HTMLテーブル形式のレイアウトで)
- org.apache.log4j.PatternLayout(柔軟性がレイアウトモードを指定します)、
- Org.apache.log4j.SimpleLayout(レベル情報およびログ情報の文字列を含みます)、
- org.apache.log4j.TTCCLayout(等ログが生成された時間、スレッド、タイプ情報を含みます)
1.4.3.1 HTMLLayout
LocationInfo=true
:デフォルト値はfalseで、Javaの出力ファイル名と行番号は
Title=my app file
:デフォルト値は、Log4Jのログメッセージです
1.4.3.2 PatternLayoutは
ConversionPattern=%m%n
:指定したメッセージをフォーマットする方法を指定します。
シンボルの詳細の様々なタイプで1.4.3.3レイアウトログ形式
Log4J
同様のC
言語printf
印刷用にフォーマット機能のログ情報以下のように、印刷パラメータは次のとおりです。
og4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
いくつかのシンボルを意味するログ情報の形式は表します。
-X号:
左X時に情報出力。%p:
優先出力ログ情報、すなわちDEBUG、INFO、WARN、ERROR、FATAL、%d:
時間内に日付や時刻出力ログポイントは、デフォルトの形式は、たとえば、あなたはその後書式を指定することができ、ISO8601である:%d{yyy MMM dd HH:mm:ss,SSS}
出力があるよう:28921:午後10時10分に2002年10月18日に%r:
費やしたミリ秒数のログ情報の開始から出力への出力%c:
カテゴリー出力ログ情報は、どこのクラスの通常の完全な名前を所属します%t:
出力生成されたログイベントスレッド名%l:
出力ログイベントの発生場所の等価%C.%M(%F:%L)
カテゴリを含むポートフォリオは、スレッド、ならびに行の数でした。例えば:Testlog4.main(TestLog4.java:10)
%x:
出力現在のスレッドと関連付けられているNDC
ように(診断コンテキストネスト)、特に、使用されるjava servlets
場合にはマルチクライアントマルチスレッドアプリケーション。%%:
出力”%”
文字%F:
ときにログメッセージが生成された出力ファイル名を%L:
コードの行番号の出力%m:
生成されたコードのメッセージで指定された最良の出力ログ情報を、%n:
出力キャリッジリターンラインフィード、Windows
プラットフォーム”\r\n”
、Unix
プラットフォーム”\n”
の出力ログ情報の改行
あなたは、可能%
な文字の間にそのモードを制御するために修飾子を追加します最小宽度、最大宽度、和文本的对齐方式
。以下のような:
%20c:
出力の指定category
名を、最小幅20
、場合category
名前が20未満である、デフォルトで右揃え。%-20c:
出力の指定category
名を、カテゴリ名が、20未満であれば最小幅は、20ある”-“
左揃え指定。%.30c:
出力を指定しcategory
た場合の名前を、最大幅が30である、category
名前が30以上である、そして、それは複数文字切断さから除外されますが、言葉が30個の未満のスペースではないでしょう。%20.30c:
場合はcategory
、会議スペースの名前が20未満で、かつ右詰め、名前が30文字より長い場合は、切り捨てペイアウト文字を左からエクスポートされます
1.5 log4j.propertiesの例
# 设置日志根
log4j.rootLogger = debug , stdout , D , E
# 此处的addivity指是否追加写入日志
log4j.addivity.org.apache=true
# 输出到控制台
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
# 输出到日志文件
#log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.D.File = logs/log.log
#log4j.appender.D.Append = true
#log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
#log4j.appender.D.layout = org.apache.log4j.PatternLayout
#log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
# 保存异常信息到单独文件
#log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.D.File = logs/error.log ## 异常日志文件名
#log4j.appender.D.Append = true
#log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
#log4j.appender.D.layout = org.apache.log4j.PatternLayout
#log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n