springboot2集成log4j2---簡書

1言沐、剔除springboot自帶日志配置闸英、引入log4j2的日志配置

<dependency>

<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>

<exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions>

</dependency><!-- 引入log4j2依賴 -->

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId></dependency>

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.18</version></dependency>

2糊识、yml配置

# 應(yīng)用名稱

spring:

application:

name: log

# 應(yīng)用服務(wù) WEB 訪問端口

server:

port:8080

# 指定讀取日志配置

logging:

config: classpath:log4j2.xml

3、在resource目錄新建log4j2.xml文件,指定日志路徑、日志層級等配置

<?xml version="1.0" encoding="UTF-8"?>


Configuration后面的status如庭,這個用于設(shè)置log4j2自身內(nèi)部的信息輸出,可以不設(shè)置撼港,

當(dāng)設(shè)置成trace時坪它,可以看到log4j2內(nèi)部各種詳細(xì)輸出

-->

<!--monitorInterval:Log4j能夠自動檢測修改配置 文件和重新配置本身骤竹,設(shè)置間隔秒數(shù)-->

<configuration monitorInterval="5">

? ? <!--日志級別以及優(yōu)先級排序:

OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL

-->

? ? <!--變量配置-->

? ?


? ? ? ? ? ? 格式化輸出:? ? ? ? ? ? %d表示日期,? ? ? ? ? ? %thread表示線程名往毡,? ? ? ? ? ? %-5level:級別從左顯示5個字符寬度? ? ? ? ? ? %msg:日志消息瘤载,%n是換行符

? ? ? ? -->


? ? ? ? %logger{36} 表示 Logger 名字最長36個字符

? ? ? ? -->

? ? ? ? <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level}[%thread] %style{%logger{36}}{cyan} : %msg%n" />

? ? ? ? <!-- 定義日志存儲的路徑,不要配置相對路徑 -->

? ? ? ? <property name="FILE_PATH" value="/data/log" />

? ? ? ? <property name="FILE_NAME" value="log" />

? ? ? ? <console name="Console" target="SYSTEM_OUT">

? ? ? ? ? ? <!--輸出日志的格式-->

? ? ? ? ? ? <PatternLayout pattern="${LOG_PATTERN}" disableAnsi="false" noConsoleNoAnsi="false"/>

? ? ? ? ? ? <!--控制臺只輸出level及其以上級別的信息(onMatch)卖擅,其他的直接拒絕(onMismatch)-->

? ? ? ? ? ? <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>

? ? ? ? <!--文件會打印出所有信息,這個log每次運(yùn)行程序會自動清空墨技,由append屬性決定惩阶,適合臨時測試用-->

? ? ? ? <File name="FileLog" fileName="${FILE_PATH}/test.log" append="false">

? ? ? ? ? ? <PatternLayout pattern="${LOG_PATTERN}"/>


? ? ? ? 這個會打印出所有的info及以下級別的信息,每次大小超過size扣汪,

? ? ? ? 則這size大小的日志會自動存入按年份-月份建立的文件夾下面并進(jìn)行壓縮断楷,

作為存檔

? ? ? ? -->

? ? ? ? <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">

? ? ? ? ? ? <!--控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)-->

? ? ? ? ? ? <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>

? ? ? ? ? ? <PatternLayout pattern="${LOG_PATTERN}"/>

? ? ? ? ? ? ? ? <!--interval屬性用來指定多久滾動一次崭别,默認(rèn)是1 hour-->

? ? ? ? ? ? ? ? <TimeBasedTriggeringPolicy interval="1"/>

? ? ? ? ? ? ? ? <SizeBasedTriggeringPolicy size="20MB"/>

? ? ? ? ? ? <!-- DefaultRolloverStrategy屬性如不設(shè)置冬筒,則默認(rèn)為最多同一文件夾下7個文件開始覆蓋-->

? ? ? ? ? ? <DefaultRolloverStrategy max="15"/>

? ? ? ? <!-- 這個會打印出所有的warn及以下級別的信息,每次大小超過size茅主,則這size大小的日志會自動存入按年份-月份建立的文件夾下面并進(jìn)行壓縮舞痰,作為存檔-->

? ? ? ? <RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">

? ? ? ? ? ? <!--控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)-->

? ? ? ? ? ? <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>

? ? ? ? ? ? <PatternLayout pattern="${LOG_PATTERN}"/>

? ? ? ? ? ? ? ? <!--interval屬性用來指定多久滾動一次诀姚,默認(rèn)是1 hour-->

? ? ? ? ? ? ? ? <TimeBasedTriggeringPolicy interval="1"/>

? ? ? ? ? ? ? ? <SizeBasedTriggeringPolicy size="20MB"/>

? ? ? ? ? ? <!-- DefaultRolloverStrategy屬性如不設(shè)置响牛,則默認(rèn)為最多同一文件夾下7個文件開始覆蓋-->

? ? ? ? ? ? <DefaultRolloverStrategy max="15"/>

? ? ? ? <!-- 這個會打印出所有的error及以下級別的信息,每次大小超過size赫段,則這size大小的日志會自動存入按年份-月份建立的文件夾下面并進(jìn)行壓縮呀打,作為存檔-->

? ? ? ? <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">

? ? ? ? ? ? <!--控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)-->

? ? ? ? ? ? <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>

? ? ? ? ? ? <PatternLayout pattern="${LOG_PATTERN}"/>

? ? ? ? ? ? ? ? <!--interval屬性用來指定多久滾動一次糯笙,默認(rèn)是1 hour-->

? ? ? ? ? ? ? ? <TimeBasedTriggeringPolicy interval="1"/>

? ? ? ? ? ? ? ? <SizeBasedTriggeringPolicy size="20MB"/>

? ? ? ? ? ? <!-- DefaultRolloverStrategy屬性如不設(shè)置贬丛,則默認(rèn)為最多同一文件夾下7個文件開始覆蓋-->

? ? ? ? ? ? <DefaultRolloverStrategy max="15"/>

? ? <!--Logger節(jié)點(diǎn)用來單獨(dú)指定日志的形式,比如要為指定包下的class指定不同的日志級別等给涕。-->

? ? <!--然后定義loggers豺憔,只有定義了logger并引入的appender,appender才會生效-->

? ?

? ? ? ? <!--過濾掉spring和mybatis的一些無用的DEBUG信息-->

? ? ? ? <logger name="org.mybatis" level="info" additivity="false">

? ? ? ? ? ? <AppenderRef ref="Console"/>

? ? ? ? <!--監(jiān)控系統(tǒng)信息-->

? ? ? ? <!--若是additivity設(shè)為false稠炬,則 子Logger 只會在自己的appender里輸出焕阿,而不會在 父Logger 的appender里輸出。-->

? ? ? ? <Logger name="org.springframework" level="info" additivity="false">

? ? ? ? ? ? <AppenderRef ref="Console"/>

? ? ? ? <root level="info">

? ? ? ? ? ? <appender-ref ref="Console"/>

? ? ? ? ? ? <appender-ref ref="FileLog"/>

? ? ? ? ? ? <appender-ref ref="RollingFileInfo"/>

? ? ? ? ? ? <appender-ref ref="RollingFileWarn"/>

? ? ? ? ? ? <appender-ref ref="RollingFileError"/>

</configuration>

4首启、編寫代碼測試

@RestController

@RequestMapping("/testCtrl")

@Log4j2

public class TestController {

@GetMapping("/info")

public void info(){

log.info("info");

? ? }

@GetMapping("/debug")

public void debug(){

log.debug("debug");

? ? }

@GetMapping("/warn")

public void warn(){

log.warn("warn");

? ? }

@GetMapping("/error")

public void error(){

log.error("error");

? ? }

}

5暮屡、效果截圖


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市毅桃,隨后出現(xiàn)的幾起案子褒纲,更是在濱河造成了極大的恐慌准夷,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莺掠,死亡現(xiàn)場離奇詭異衫嵌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)彻秆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門楔绞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人唇兑,你說我怎么就攤上這事酒朵。” “怎么了扎附?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵蔫耽,是天一觀的道長。 經(jīng)常有香客問我留夜,道長匙铡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任碍粥,我火速辦了婚禮鳖眼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嚼摩。我一直安慰自己具帮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布低斋。 她就那樣靜靜地躺著蜂厅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪膊畴。 梳的紋絲不亂的頭發(fā)上掘猿,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機(jī)與錄音唇跨,去河邊找鬼稠通。 笑死,一個胖子當(dāng)著我的面吹牛买猖,可吹牛的內(nèi)容都是我干的改橘。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼玉控,長吁一口氣:“原來是場噩夢啊……” “哼飞主!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤碌识,失蹤者是張志新(化名)和其女友劉穎碾篡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筏餐,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡开泽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了魁瞪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穆律。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖导俘,靈堂內(nèi)的尸體忽然破棺而出众旗,到底是詐尸還是另有隱情,我是刑警寧澤趟畏,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站滩租,受9級特大地震影響赋秀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜律想,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一猎莲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧技即,春花似錦著洼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至葵陵,卻和暖如春液荸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脱篙。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工娇钱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绊困。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓文搂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親秤朗。 傳聞我的和親對象是個殘疾皇子煤蹭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容