log4j2日志xml配置——不同級別的日志分別記錄在不同的文件


<?xml version="1.0" encoding="UTF-8"?>
<!--日志級別以及優先級排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,這個用於設置log4j2自身內部的信息輸出,可以不設置,當設置成trace時,你會看到log4j2內部各種詳細輸出-->
<!--monitorInterval:Log4j能夠自動檢測修改配置 文件和重新配置本身,設置間隔秒數-->
<Configuration status="WARN" monitorInterval="500">
    <!--定義日志儲存文件目錄-->
    <properties>
        <property name="LOG_HOME">logs</property>
    </properties>
    <Appenders>
        <!--控制台輸出所有日志-->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <!--Info級別日志輸出-->
        <RollingRandomAccessFile name="InfoFile"
                                 fileName="${LOG_HOME}/info/info.log"
                                 filePattern="${LOG_HOME}/info-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>  
                <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
            </Filters>
            <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <!-- DefaultRolloverStrategy屬性如不設置,則默認為最多同一文件夾下7個文件,這里設置了20 -->
            <DefaultRolloverStrategy max="20" />
        </RollingRandomAccessFile>
         <!--warn級別日志輸出-->
        <RollingRandomAccessFile name="WarnFile"
                                 fileName="${LOG_HOME}/warn/warn.log"
                                 filePattern="${LOG_HOME}/warn-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>  
                <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingRandomAccessFile>

        <!--Error級別日志輸出-->
        <RollingRandomAccessFile name="ErrorFile"
                                 fileName="${LOG_HOME}/error/error.log"
                                 filePattern="${LOG_HOME}/error-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
            </Filters>
            <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingRandomAccessFile>
    </Appenders>
    
 <!--然后定義logger,只有定義了logger並引入的appender,appender才會生效-->
    <Loggers>
         <!--過濾掉spring的一些無用的DEBUG信息-->
        <logger name="org.springframework" level="INFO"></logger>
        <Root level="Debug">
            <AppenderRef ref="Console" />
            <AppenderRef ref="InfoFile" />
            <AppenderRef ref="WarnFile" />
            <AppenderRef ref="ErrorFile" />
        </Root>
    </Loggers>

</Configuration>

 PS:以上是xml配置全文件。可完全復制粘貼替換xml內容。

其它資料:https://www.cnblogs.com/hlhdidi/p/6749572.html

 

https://www.jianshu.com/p/570b406bddcd

 


免責聲明!

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



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