<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--
使用方式說明:
1. 可以修改日誌格式:調整property標籤
2. 可以修改root的日誌級別
3. 如果想將特定的包或者類的日誌打印到具體的日誌文件:
(1)拷貝debugDayFile 的 appender
(2)修改name
(3)修改filter的level
(4)修改FileNamePattern的日誌文件路徑
4. 增加logger標籤:
<logger name="com.ydj" level="info" additivity="true">
<appender-ref ref="debugDayFile"/>
</logger>
-->
<!--定義日誌文件的存儲地址 -->
<property name="LOG_HOME" value="logs"/>
<!--日誌格式 可選擇:-->
<!--只打印信息: %msg%n -->
<!--打印日期和信息: %d{yyyy-MM-dd HH:mm:ss.SSS} %msg%n-->
<!--打印日期,日誌級別,線程,類名,行數,信息: %d{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread] %class line %line: %msg%n-->
<property name="patternLayout" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread] %class line %line: %msg%n"/>
<!-- 控制檯輸出 -->
<appender name="stdOut" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${patternLayout}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 按照每天生成日誌文件。存儲事件日誌 -->
<appender name="debugDayFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日誌文件輸出的文件名 -->
<FileNamePattern>${LOG_HOME}/debug-%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日誌文件保留天數 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${patternLayout}</pattern>
</encoder>
<!--日誌文件最大的大小 -->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>1GB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 按照每天生成日誌文件。存儲事件日誌 -->
<appender name="infoDayFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日誌文件輸出的文件名 -->
<FileNamePattern>${LOG_HOME}/info-%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日誌文件保留天數 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${patternLayout}</pattern>
</encoder>
<!--日誌文件最大的大小 -->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>1GB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 按照每天生成日誌文件。存儲事件日誌 -->
<appender name="errorDayFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日誌文件輸出的文件名 -->
<FileNamePattern>${LOG_HOME}/error-%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日誌文件保留天數 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${patternLayout}</pattern>
</encoder>
<!--日誌文件最大的大小 -->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>1GB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日誌輸出級別 -->
<root level="debug">
<appender-ref ref="stdOut"/>
<appender-ref ref="debugDayFile"/>
<appender-ref ref="infoDayFile"/>
<appender-ref ref="errorDayFile"/>
</root>
<!--可以控制具體的包或者類打印到特定的日誌裏-->
<!-- <logger name="com.ydj" level="info" additivity="true">-->
<!-- <appender-ref ref="debugDayFile"/>-->
<!-- <appender-ref ref="infoDayFile"/>-->
<!-- <appender-ref ref="errorDayFile"/>-->
<!-- </logger>-->
</configuration>