log4j2常见配置
生活随笔
收集整理的這篇文章主要介紹了
log4j2常见配置
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
依賴(lài)jar: <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.9.1</version>
</dependency>
<dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.9.1</version>
</dependency> 在log4j2中配置文件可以為.xml,.json或者.jsn,默認(rèn)情況下,系統(tǒng)選擇configuration文件的優(yōu)先級(jí)如下: log4j-test.json或者log4j-test.jsn log4j2-test.xml log4j.json或者log4j.jsn log4j2.xml? 日志級(jí)別 從低到高分為T(mén)RACE < DEBUG < INFO < WARN < ERROR < FATAL,如果設(shè)置為WARN,則低于WARN的信息都不會(huì)輸出。 Appender?為日志輸出目的地,常用的三種
%d{參數(shù)}:輸出時(shí)間。參數(shù)可以是text.SimpleDateFormat字符拼接而成,也可以使用系統(tǒng)默認(rèn)
%l 和 %L:輸出行號(hào),%l 輸出完整的包路徑及行號(hào),%L 僅輸出行號(hào)。此參數(shù)影響日志輸出性能 %m或%msg或%message:輸出日志信息 %M或%method:輸出方法名 %level{參數(shù)1}:不寫(xiě)參數(shù)時(shí),輸出日志級(jí)別。第一個(gè)參數(shù)用來(lái)替換日志信息的級(jí)別,格式為:{level=label, level=label, …},即使用label代替的字符串替換level,例如 %level{WARN=W, DEBUG=D, ERROR=E, TRACE=T, INFO=I},則logger.warn輸出W等等 log4j2.xml 配置文件 <?xml version="1.0" encoding="UTF-8"?>
<configuration status="debug"> <!-- 變量配置 --><Properties><Property name="root_path">${sys:catalina.home}</Property></Properties> <!--先定義所有的appender --> <appenders> <!--這個(gè)輸出控制臺(tái)的配置 --> <Console name="Console" target="SYSTEM_OUT"> <!--控制臺(tái)只輸出level及以上級(jí)別的信息(onMatch),其他的直接拒絕(onMismatch) --> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> <!--這個(gè)都知道是輸出日志的格式 --> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %c %L %M - %msg%xEx%n"/> </Console> <!--文件會(huì)打印出所有信息,這個(gè)log每次運(yùn)行程序會(huì)自動(dòng)清空,由append屬性決定,這個(gè)也挺有用的,適合臨時(shí)測(cè)試用 --> <!--append為T(mén)RUE表示消息增加到指定文件中,false表示消息覆蓋指定的文件內(nèi)容,默認(rèn)值是true --> <File name="log" fileName="${root_path}/logs/logdemo.log" append="true"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %c %L %M - %msg%xEx%n"/> </File> <!--添加過(guò)濾器ThresholdFilter,可以有選擇的輸出某個(gè)級(jí)別以上的類(lèi)別 onMatch="ACCEPT" onMismatch="DENY"意思是匹配就接受,否則直接拒絕 --> <File name="ERROR" fileName="${sys:catalina.home}/logs/logdemo_error.log"> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="%d{yyyy.MM.dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> </File> <!--這個(gè)會(huì)打印出所有的信息,每次大小超過(guò)size,則這size大小的日志會(huì)自動(dòng)存入按年-月-日建立的文件夾下面并進(jìn)行壓縮,作為存檔 --> <RollingFile name="RollingFile" fileName="${sys:catalina.home}/logs/logdemo_web.log" filePattern="${sys:catalina.home}/logs/$${date:yyyy-MM-dd}/logdemo_web-%d{yyyy-MM-dd}-%i.log.gz"> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> <!-- 設(shè)置日志文件大小超過(guò)多少后開(kāi)始進(jìn)行壓縮 單位:KB/MB/GB --><SizeBasedTriggeringPolicy size="10MB"/> <!-- DefaultRolloverStrategy屬性如不設(shè)置,則默認(rèn)為最多同一文件夾下7個(gè)文件,超過(guò)后則會(huì)覆蓋之前的,這里設(shè)置了20 --><DefaultRolloverStrategy max="20"/></RollingFile> <!--每分鐘產(chǎn)生一個(gè)文件,歷史的日志會(huì)自動(dòng)存入按年-月-日建立的文件夾下面并進(jìn)行壓縮,作為存檔 -->
<RollingFile name="DailyRollingFile" fileName="${sys:catalina.home}/logs/logdemo_all.log" filePattern="${sys:catalina.home}/logs/$${date:yyyy-MM-dd}/logdemo_all-%d{yyyy-MM-dd_HH-mm}-%i.log"> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> <TimeBasedTriggeringPolicy interval="1" modulate="true" />
</RollingFile> </appenders> <!--然后定義logger,只有定義了logger并引入的appender,appender才會(huì)生效 --> <loggers> <!--建立一個(gè)默認(rèn)的root的logger,只有能一個(gè)root --> <root level="debug"> <appender-ref ref="RollingFile"/> <appender-ref ref="Console"/> <appender-ref ref="ERROR" /> <appender-ref ref="log"/> </root> <!-- 設(shè)置指定包輸出指定的日志級(jí)別 --><logger name="com.gavin" level="warn"/></loggers>
</configuration>
- Console:將輸出到控制臺(tái)
- File:將結(jié)果輸出到一個(gè)指定文件中。
- RollingFile:和File一樣,RollingFile則較為靈活,可以按照文件大小拆分文件
| %c | org.apache.com.te.Foo | org.apache.com.te.Foo |
| %c{1} | org.apache.com.te.Foo | Foo |
| %c{2} | org.apache.com.te.Foo | te.Foo |
| %c{1.} | org.apache.com.te.Foo | o.a.c.t.Foo |
| %c{1.1.!} | org.apache.com.te.Foo | o.a.!.!.Foo |
| %c{.} | org.apache.com.te.Foo | ….Foo |
| %d{DEFAULT} | 2012-11-02 14:34:02,781 |
| %d{ISO8601} | 2012-11-02T14:34:02,781 |
| %d{ISO8601_BASIC} | 20121102T143402,781 |
| %d{ABSOLUTE} | 14:34:02,781 |
| %d{DATE} | 02 Nov 2012 14:34:02,781 |
| %d{COMPACT} | 20121102143402781 |
| %d{HH:mm:ss,SSS} | 14:34:02,781 |
| %d{dd MMM yyyy HH:mm:ss,SSS} | 02 Nov 2012 14:34:02,781 |
| %d{HH:mm:ss}{GMT+0} | 18:34:02 |
| %d{UNIX} | 1351866842 |
| %d{UNIX_MILLIS} | 1351866842781 |
?
轉(zhuǎn)載于:https://www.cnblogs.com/gavinYang/p/8168928.html
與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的log4j2常见配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 无花果哪个品种最好吃 探寻无花果的口感王
- 下一篇: 玉溪至阿克苏克孜尔魔鬼城经过哪些地方