Log4j2完整XML參考(詳細注釋說明)


1.說明

本文提供完整的log4j2.xml配置文件,
供開發中參考使用,可以作為模板,
配置對應實現如下常用的功能:
1.自動檢測和重新加載配置,每10分鍾(600s)檢測一次
2.每個日志文件最大為100MB
3.每天備份一次日志文件
4.備份的日志文件壓縮為gz格式
5.備份的文件放到以當前年月命名的目錄
6.每天備份的日志文件個數最多為5個
7.最多保留6個月(180D)之內的日志文件

2.完整log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--status:Log4j2內部日志的輸出級別,設置為TRACE對學習Log4j2非常有用 -->
<!--monitorInterval:定時檢測配置文件的修改,有變化則自動重新加載配置,時間單位為秒,最小間隔為5s -->
<Configuration status="WARN" monitorInterval="600">
    <!--properties:設置全局變量 -->
    <properties>
        <!--LOG_HOME:指定當前日志存放的目錄 -->
        <property name="LOG_HOME">logs</property>
        <!--FILE_NAME:指定日志文件的名稱 -->
        <property name="FILE_NAME">test</property>
    </properties>
    <!--Appenders:定義日志輸出目的地,內容和格式等 -->
    <Appenders>
        <!--Console:日志輸出到控制台標准輸出 -->
        <Console name="Console" target="SYSTEM_OUT">
            <!--pattern:日期,線程名,日志級別,日志名稱,日志信息,換行 -->
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%L] - %msg%n" />
        </Console>
        <!--RollingFile:日志輸出到文件,下面的文件都使用相對路徑 -->
        <!--fileName:當前日志輸出的文件名稱 -->
        <!--filePattern:備份日志文件名稱,備份目錄為logs下面以年月命名的目錄,備份時使用gz格式壓縮 -->
        <RollingFile name="RollingFile" fileName="${LOG_HOME}/${FILE_NAME}.log"
            filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level [%L] - %msg%n" />
            <!--Policies:觸發策略決定何時執行備份 -->
            <Policies>
                <!--TimeBasedTriggeringPolicy:日志文件按照時間備份 -->
                <!--interval:每1天生成一個新文件,時間單位需要結合filePattern時間%d{yyyy-MM-dd} -->
                <!--同理,如果要每1小時生成一個新文件,則改成%d{yyyy-MM-ddHH} -->
                <!--modulate:對備份日志的生成時間糾偏,糾偏以0為基准進行,"0+interval"決定啟動后第一次備份時間 -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <!--SizeBasedTriggeringPolicy:日志文件按照大小備份 -->
                <!--size:指定日志文件最大為100MB,單位可以為KB、MB或GB -->
                <SizeBasedTriggeringPolicy size="100MB" />
            </Policies>
            <!--DefaultRolloverStrategy:翻轉策略決定如何執行備份 -->
            <!--max:最多保存5個備份文件,結合時間使用后,在每個時間段內最多有5個備份,多出來的會被覆蓋 -->
            <!--compressionLevel:配置日志壓縮級別,范圍0-9,0不壓縮,1壓縮速度最快,9壓縮率最好,目前只對於zip壓縮文件類型有效 -->
            <DefaultRolloverStrategy max="5" compressionLevel="1">
                <!--Delete:刪除匹配到的過期備份文件 -->
                <!--maxDepth:由於備份文件保存在${LOG_HOME}/$${date:yyyy-MM},所以目錄深度設置為2 -->
                <Delete basePath="${LOG_HOME}" maxDepth="2">
                    <!--IfFileName:匹配文件名稱 -->
                    <!--glob:匹配2級目錄深度下的以.log.gz結尾的備份文件 -->
                    <IfFileName glob="*/*.log.gz" />
                    <!--IfLastModified:匹配文件修改時間 -->
                    <!--age:匹配超過180天的文件,單位D、H、M、S分別表示天、小時、分鍾、秒-->
                    <IfLastModified age="180D" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </Appenders>
    <!--Loggers:定義日志級別和使用的Appenders -->
    <Loggers>
        <!--name: 打印日志的類的包路徑 -->
        <!--additivity: true當前的Logger打印的日志附加到Root,false僅僅打印到RollingFile -->
        <Logger name="org.apache.logging.log4j" level="ERROR" additivity="true">
            <AppenderRef ref="RollingFile" />
        </Logger>
        <!--Root:日志默認打印到控制台 -->
        <!--level日志級別: ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF -->
        <Root level="ERROR">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

3.參考文章

Log4j2基本使用入門
Log4j2進階使用(按大小時間備份日志)
Log4j2進階使用(Pattern Layout詳細設置)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM