最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?Boot?3中一套可以直接用于生產環(huán)境的Log4J2日志配置詳解

 更新時間:2023年12月18日 09:18:44   作者:晨曦蝸牛  
Log4J2是Apache Log4j的升級版,參考了logback的一些優(yōu)秀的設計,并且修復了一些問題,因此帶來了一些重大的提升,這篇文章主要介紹了Spring?Boot?3中一套可以直接用于生產環(huán)境的Log4J2日志配置,需要的朋友可以參考下

一 Log4J2 相關概念及基本特點

Log4J2是Apache Log4j的升級版,參考了logback的一些優(yōu)秀的設計,并且修復了一些問題,因此帶來了一些重大的提升。
Logger:日志記錄器,用于標識日志的來源。常見的有兩種:Root和Logger。Root節(jié)點用來指定項目的根日志,如果沒有單獨指定Logger,那么就會默認使用該Root日志輸出
Appender:日志輸出器,用于將日志記錄輸出到指定的目標。常見的有三種子節(jié)點:Console、RollingFile、File。Console節(jié)點用來定義輸出到控制臺的Appender;RollingFile節(jié)點用來定義超過指定條件自動刪除舊的創(chuàng)建新的Appender;File節(jié)點用來定義輸出到指定位置的文件的Appender。
Layout:日志格式化器,用于定義日志記錄的輸出格式。Root節(jié)點用來指定項目的根日志,如果沒有單獨指定Logger,那么就會默認使用該Root日志輸出。

二 Spring Boot3 中啟用Log4J2的pom.xml配置

    <dependencies>
        <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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

排除原依賴中的日志相關包,單獨引入Log4J2依賴。

三 application.properties 的配置

# 控制臺輸出的字符集
logging.charset.console=UTF-8
# 日志寫入文件的字符集
logging.charset.file=UTF-8
# Log4J2自定義配置的路徑,放置到resources目錄下
logging.config=classpath:logback.xml
# 應用程序包的路徑
logging.level.com.test=INFO
# 日志存放路徑
logging.file.path=logs/test.log

四 完整配置

配置文件的名稱為:logback.xml,放置于resources目錄下。

<?xml
 version="1.0" encoding="UTF-8"?>
 <!--status:用來指定log4j2本身的打印日志的級別,monitorinterval:用于指定log4j自動重新配置的監(jiān)測間隔時間,單位是s,最小是5s-->
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="logDir">logs</Property>
        <Property name="logFile">cmams</Property>
        <Property name="level">DEBUG</Property>
    </Properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="[%-4level] [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %logger{96}:%line - %msg%n"/>
            <!--控制臺只輸出level及其以上級別的信息(onMatch),其他的直接拒絕(onMismatch)-->
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </Console>
        <RollingFile name="File" fileName="${logDir}/${logFile}.log"
                     filePattern="${logDir}/${logFile}-%d{yyyy-MM-dd}-%i.log.gz">
            <!--日志輸出格式-->
            <PatternLayout pattern="[%-4level] [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %logger{96}:%line - %msg%n"/>
            <!--滿足任何一個policy即進行歸檔-->
            <Policies>
                <!--當前日志與開始日期不匹配(RollingFile中配置的filePattern中配置的最小時間單位不匹配時)時進行歸檔-->
                <TimeBasedTriggeringPolicy/>
                <!--文件超過512M進行歸檔,SizeBasedTriggeringPolicy規(guī)定了當日志文件達到了指定的size時,觸發(fā)rollover操作。size參數(shù)可以用KB、MB、GB等做后綴來指定具體的字節(jié)數(shù),如20MB-->
                <SizeBasedTriggeringPolicy size="64MB"/>
            </Policies>
            <!--歸檔的文件最大數(shù)量,max參數(shù)指定了計數(shù)器的最大值。一旦計數(shù)器達到了最大值,過舊的文件將被刪除。-->
            <DefaultRolloverStrategy max="20">
                <!--刪除規(guī)則-->
                <Delete basePath="${logDir}" maxDepth="2">
                    <!--匹配文件規(guī)則-->
                    <IfFileName glob="*.log.gz">
                        <IfLastModified age="60d">
                            <IfAny>
                                <!--logDir下文件總大小超過5GB,進行刪除-->
                                <IfAccumulatedFileSize exceeds="5GB"/>
                                <!--logDir下文件總數(shù)量超過100,進行刪除-->
                                <IfAccumulatedFileCount exceeds="100"/>
                            </IfAny>
                        </IfLastModified>
                    </IfFileName>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>
    <Loggers>
    <!--若是additivity設為false,則 子Logger 只會在自己的appender里輸出,而不會在 父Logger 的appender里輸出。-->
        <Logger name="com.cxwn.cmams" level="${level}" additivity="false">
            <AppenderRef ref="File"/>
            <AppenderRef ref="Console"/>
        </Logger>
        <Logger name="org.springframework" level="ERROR" additivity="false">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Logger>
        <Root level="WARN">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

到此這篇關于Spring Boot 3中一套可以直接用于生產環(huán)境的Log4J2日志配置的文章就介紹到這了,更多相關Spring Boot 3 Log4J2日志配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JAVA數(shù)組中五種常見排序方法整理匯總

    JAVA數(shù)組中五種常見排序方法整理匯總

    本文給大家分享五種常用的Java數(shù)組排序方法整理,每種方法結合示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2025-05-05
  • java有界類型參數(shù)的實例用法

    java有界類型參數(shù)的實例用法

    小編給大家整理了一篇關于java有界類型參數(shù)的使用的相關文章及擴展實例內容,有需要的朋友們可以學習參考下。
    2021-07-07
  • SpringBoot設置編碼UTF-8的兩種方法

    SpringBoot設置編碼UTF-8的兩種方法

    本文通過兩種方式給大家介紹SpringBoot 設置編碼UTF-8 ,每種方式通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • 詳解Spring Data JPA動態(tài)條件查詢的寫法

    詳解Spring Data JPA動態(tài)條件查詢的寫法

    本篇文章主要介紹了Spring Data JPA動態(tài)條件查詢的寫法 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java中設置session超時(失效)的三種方法

    Java中設置session超時(失效)的三種方法

    這篇文章主要介紹了Java中設置session超時(失效)的三種方法,本文講解了在web容器中設置、在工程的web.xml中設置、通過java代碼設置3種方法,需要的朋友可以參考下
    2015-07-07
  • MyBatis 自動更新時間的方法實現(xiàn)

    MyBatis 自動更新時間的方法實現(xiàn)

    本文主要介紹了MyBatis 自動更新時間的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • struts2入門介紹及代碼實例

    struts2入門介紹及代碼實例

    這篇文章主要介紹了struts2入門介紹及代碼實例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • java JOptionPane類的介紹

    java JOptionPane類的介紹

    java JOptionPane類的介紹,需要的朋友可以參考一下
    2013-04-04
  • mybatis-plus QueryWrapper自定義查詢條件的實現(xiàn)

    mybatis-plus QueryWrapper自定義查詢條件的實現(xiàn)

    這篇文章主要介紹了mybatis-plus QueryWrapper自定義查詢條件的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Java concurrency集合之LinkedBlockingDeque_動力節(jié)點Java學院整理

    Java concurrency集合之LinkedBlockingDeque_動力節(jié)點Java學院整理

    LinkedBlockingDeque是雙向鏈表實現(xiàn)的雙向并發(fā)阻塞隊列。該阻塞隊列同時支持FIFO和FILO兩種操作方式,即可以從隊列的頭和尾同時操作(插入/刪除);并且,該阻塞隊列是支持線程安全。
    2017-06-06

最新評論

马公市| 油尖旺区| 南康市| 连江县| 西峡县| 黔东| 托里县| 辽阳县| 镇康县| 昭通市| 永靖县| 洮南市| 镇安县| 丰都县| 北海市| 澎湖县| 南京市| 邳州市| 门源| 阳原县| 临洮县| 油尖旺区| 东辽县| 弥渡县| 集安市| 泽普县| 于都县| 榆林市| 济南市| 门头沟区| 武冈市| 金川县| 喜德县| 西乡县| 临漳县| 聊城市| 瑞昌市| 建瓯市| 东山县| 遵化市| 漳浦县|