參考文章:點此
感覺還是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>