springboot+log4j.yml配置日志文件的方法
一,Maven 依賴 pom.xml配置
1, 去掉默認(rèn)日志,以便切換到log4j2的日志依賴
2, 然后添加如下兩個(gè)日志依賴
二,在工程根目錄下添加 lo4g2.yml 配置文件
2, 配置文件內(nèi)容
<!-- 配置 log4j2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!-- 加上這個(gè)才能辨認(rèn)到log4j2.yml文件 --> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> </dependency>
三,在工程根目錄下添加 lo4g2.yml 配置文件
1, 文件存放位置
2, 配置文件內(nèi)容
# 共有8個(gè)級(jí)別,按照從低到高為:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF。 Configuration: status: warn monitorInterval: 30 Properties: # 定義全局變量 Property: # 缺省配置(用于開發(fā)環(huán)境)。其他環(huán)境需要在VM參數(shù)中指定,如下: #測(cè)試:-Dlog.level.console=warn -Dlog.level.xjj=trace #生產(chǎn):-Dlog.level.console=warn -Dlog.level.xjj=info - name: log.level.console value: info - name: log.path value: log - name: project.name value: opendoc - name: log.pattern value: "%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-30.30C{1.} : %m%n" Appenders: Console: #輸出到控制臺(tái) name: CONSOLE target: SYSTEM_OUT PatternLayout: pattern: ${log.pattern} # 啟動(dòng)日志 RollingFile: - name: ROLLING_FILE fileName: ${log.path}/${project.name}.log filePattern: "${log.path}/historyRunLog/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" PatternLayout: pattern: ${log.pattern} Filters: # 一定要先去除不接受的日志級(jí)別,然后獲取需要接受的日志級(jí)別 ThresholdFilter: - level: error onMatch: DENY onMismatch: NEUTRAL - level: info onMatch: ACCEPT onMismatch: DENY Policies: TimeBasedTriggeringPolicy: # 按天分類 modulate: true interval: 1 DefaultRolloverStrategy: # 文件最多100個(gè) max: 100 # 平臺(tái)日志 - name: PLATFORM_ROLLING_FILE ignoreExceptions: false fileName: ${log.path}/platform/${project.name}_platform.log filePattern: "${log.path}/platform/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" PatternLayout: pattern: ${log.pattern} Policies: TimeBasedTriggeringPolicy: # 按天分類 modulate: true interval: 1 DefaultRolloverStrategy: # 文件最多100個(gè) max: 100 # 業(yè)務(wù)日志 - name: BUSSINESS_ROLLING_FILE ignoreExceptions: false fileName: ${log.path}/bussiness/${project.name}_bussiness.log filePattern: "${log.path}/bussiness/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" PatternLayout: pattern: ${log.pattern} Policies: TimeBasedTriggeringPolicy: # 按天分類 modulate: true interval: 1 DefaultRolloverStrategy: # 文件最多100個(gè) max: 100 # 錯(cuò)誤日志 - name: EXCEPTION_ROLLING_FILE ignoreExceptions: false fileName: ${log.path}/exception/${project.name}_exception.log filePattern: "${log.path}/exception/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" ThresholdFilter: level: error onMatch: ACCEPT onMismatch: DENY PatternLayout: pattern: ${log.pattern} Policies: TimeBasedTriggeringPolicy: # 按天分類 modulate: true interval: 1 DefaultRolloverStrategy: # 文件最多100個(gè) max: 100 # DB 日志 - name: DB_ROLLING_FILE ignoreExceptions: false fileName: ${log.path}/db/${project.name}_db.log filePattern: "${log.path}/db/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" PatternLayout: pattern: ${log.pattern} Policies: TimeBasedTriggeringPolicy: # 按天分類 modulate: true interval: 1 DefaultRolloverStrategy: # 文件最多100個(gè) max: 100 Loggers: Root: level: info AppenderRef: - ref: CONSOLE - ref: ROLLING_FILE - ref: EXCEPTION_ROLLING_FILE Logger: - name: platform level: info additivity: false AppenderRef: - ref: CONSOLE - ref: PLATFORM_ROLLING_FILE - name: bussiness level: info additivity: false AppenderRef: - ref: BUSSINESS_ROLLING_FILE - name: exception level: debug additivity: true AppenderRef: - ref: EXCEPTION_ROLLING_FILE - name: db level: info additivity: false AppenderRef: - ref: DB_ROLLING_FILE # 監(jiān)聽具體包下面的日志 # Logger: # 為com.xjj包配置特殊的Log級(jí)別,方便調(diào)試 # - name: com.xjj # additivity: false # level: ${sys:log.level.xjj} # AppenderRef: # - ref: CONSOLE # - ref: ROLLING_FILE
3, 在application.yml引入log4j2.yml
四, 不同日志枚舉類
五, 不同日志工具類util編輯
package com.tcs.irecr.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 本地日志參考類 * @author Administrator * */ public class LogUtils { //* 獲取業(yè)務(wù)日志logger } public static Logger getBussinessLogger() { return LoggerFactory.getLogger(LogEnum.BUSSINESS.getCategory()); } //獲取平臺(tái)日志logger public static Logger getPlatformLogger() { return LoggerFactory.getLogger(LogEnum.PLATFORM.getCategory()); } //獲取數(shù)據(jù)庫日志logger public static Logger getDBLogger() { return LoggerFactory.getLogger(LogEnum.DB.getCategory()); } //獲取異常日志logger public static Logger getExceptionLogger() { return LoggerFactory.getLogger(LogEnum.EXCEPTION.getCategory()); }
六, 運(yùn)行時(shí)自動(dòng)在工程目錄下生產(chǎn)日志目錄和日志文件
到此這篇關(guān)于springboot+log4j.yml配置日志文件的方法的文章就介紹到這了,更多相關(guān)springboot log4j.yml配置日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java URL自定義私有網(wǎng)絡(luò)協(xié)議
URI與URL的區(qū)別 一.先來序言一段 二.協(xié)議的自定義的理解 三.自定義協(xié)議與URL的關(guān)系 四.URL自定義私有協(xié)議實(shí)戰(zhàn) 五.后話,自定義mineType解析器2016-04-04Java利用Netty時(shí)間輪實(shí)現(xiàn)延時(shí)任務(wù)
時(shí)間輪是一種可以執(zhí)行定時(shí)任務(wù)的數(shù)據(jù)結(jié)構(gòu)和算法。本文將為大家詳細(xì)講解一下Java如何利用Netty時(shí)間輪算法實(shí)現(xiàn)延時(shí)任務(wù),感興趣的小伙伴可以了解一下2022-08-08Java線程池ForkJoinPool(工作竊取算法)的使用
Fork就是把一個(gè)大任務(wù)切分為若干個(gè)子任務(wù)并行地執(zhí)行,Join就是合并這些子任務(wù)的執(zhí)行結(jié)果,最后得到這個(gè)大任務(wù)的結(jié)果。Fork/Join?框架使用的是工作竊取算法。本文主要介紹了ForkJoinPool的使用,需要的可以參考一下2022-11-11Java輸入三個(gè)整數(shù)并把他們由小到大輸出(x,y,z)
這篇文章主要介紹了輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出,需要的朋友可以參考下2017-02-02全面解析Spring Security 過濾器鏈的機(jī)制和特性
這篇文章主要介紹了Spring Security 過濾器鏈的機(jī)制和特性,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07spring bean.xml文件p標(biāo)簽使用報(bào)錯(cuò)的解決
這篇文章主要介紹了spring bean.xml文件p標(biāo)簽使用報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08解決@Transactional注解事務(wù)不回滾不起作用的問題
這篇文章主要介紹了解決@Transactional注解事務(wù)不回滾不起作用的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02Java多線程(單例模式,堵塞隊(duì)列,定時(shí)器)詳解
這篇文章主要介紹了java多線程的(單例模式,堵塞隊(duì)列,定時(shí)器),具有一定參考價(jià)值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下2021-08-08