詳細およびlog4j2でlog4jの構成

詳細およびlog4j2 1つのlog4j設定

概念の1.1説明

1.1.1 log4jのブリーフ

Log4j使用して、ロギングライブラリ、我々はログ情報を搬送(等コンソール、ファイル、データベース、)先を制御することができるが、我々はまた、各ログの出力形式を制御することができ、各ログ情報のレベルを定義することによって、我々はこれは、より細かく生成プロセスのログを制御することができます。ApacheJavaLog4j

1.1.2 Log4j2ブリーフ

Apache Log4j 2Log4jそれは前任者よりも、エスカレーション、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
公開された334元の記事 ウォンの賞賛186 ビュー310 000 +

おすすめ

転載: blog.csdn.net/u012060033/article/details/104150519