log4j2配置

 參考文章:點此

感覺還是xml配置的好看些。


<?xml version="1.0" encoding="UTF-8"?>
<!-- 該xml配置中,xml元素大小寫不敏感 -->
<!-- status="off",log4j2把自身事件記錄到控制檯的配置,off表示不記錄,其餘的記錄有trace,debug,info,warn,error,fatal -->
<!-- monitorInterval表示檢測更改配置的時間,單位是秒,最小間隔爲5秒,0或負數表示不檢測 -->
<configuration name="log4j2_xml" status="warn" monitorInterval="0">

    <!-- 常量引用 -->
    <properties>
    <!-- linux下 -->
        <property name="LOG_HOME">/usr/logs/</property>
        <!--<property name="LOG_HOME">./logs</property> -->
        <property name="FORMAT">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</property>
    </properties>

    <!-- appender用於接收各種日誌 -->
    <appenders>
        <!-- 常見的輸出到console,常用於開發環境中,默認是system_err,還有一個system_out -->
      <!--   <console name="console" target="system_err">
            appender級別的日誌過濾
            <thresholdFilter level="info" onMatch="accept" onMismatch="deny"/>
            <patternLayout pattern="${FORMAT}"/>
        </console> -->
        <!-- 常用於開發環境,把日誌記錄到文件中,默認追加 -->
       <!--  <file name="db_log" fileName="${LOG_HOME}/my-blog-db.log" append="true">
            <patternLayout pattern="${FORMAT}"/>
        </file> -->
        <file name="service_log" fileName="${LOG_HOME}/my-blog-service.log" append="true">
            <patternLayout pattern="${FORMAT}"/>
        </file>
        <!--只輸出info及以上的記錄-->
  <!--       <RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/logs/info.log"
                     filePattern="${LOG_HOME}/logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                控制檯只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch)
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${FORMAT}"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100MB"/>
            </Policies>
        </RollingFile> -->
        <!--只接收warn-->
        <RollingFile name="RollingFileWarn" fileName="${LOG_HOME}/logs/warn.log"
                     filePattern="${LOG_HOME}/logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <PatternLayout pattern="${FORMAT}"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="20 MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy屬性如不設置,則默認爲最多同一文件夾下7個文件,這裏設置了10 -->
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
        <!--只接收error-->
        <RollingFile name="RollingFileError" fileName="${LOG_HOME}/logs/error.log"
                     filePattern="${LOG_HOME}/logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
            <ThresholdFilter level="ERROR"/>
            <PatternLayout pattern="${FORMAT}"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="50 MB"/>
            </Policies>
        </RollingFile>
    </appenders>

    <!-- 接收appender -->
    <loggers>
        <logger name="org.apache.http" level="warn" additivity="true"/>
        
        <!-- Spring -->
        <logger name="org.springframework" level="warn" additivity="true"/>
        
        <!-- mybatis loggers -->
        <!--   <logger name="com.ibatis" level="DEBUG"/>
           <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG"/>
           <logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG"/>
           <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG"/>-->
           
        <!-- sql loggers -->
        
        <logger name="java.sql.Connection" level="warn" additivity="true"/>
        <logger name="java.sql.Statement" level="warn" additivity="true"/>
        <logger name="java.sql.PreparedStatement" level="warn" additivity="true"/>
        <logger name="java.sql.ResultSet" level="warn" additivity="true"/>
        <logger name="org.apache" level="WARN" additivity="true"/>
        
        

        <!-- 對包進行更詳細的配置 -->
        <!-- additivity表示是否追加到root,防止重複,因爲已經接收過一次了 -->
       <!--  <logger name="com.cl.model.repo" level="info" additivity="false">
            <appender-ref ref="db_log"/>
        </logger> -->
        <!-- 此處定義後,java類中使用LoggerFactory.getLogger("exception_logger")即可獲取相應實例 -->
        <logger name="exception_logger" level="error" additivity="false">
        <appender-ref ref="service_log"/>
        </logger>
        <logger name="interceptor_logger" level="info" additivity="false">
        <appender-ref ref="service_log"/>
        </logger>
        </logger>
        <!-- root logger,一般用於放置所有的appender -->
        <root level="warn">
            <!-- <appender-ref ref="db_log"/> -->
            <!-- <appender-ref ref="console"/> -->
            <!-- <appender-ref ref="RollingFileInfo"/> -->
            <appender-ref ref="service_log"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
        </root>
    </loggers>

</configuration>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章