| <?xml version="1.0" encoding="UTF-8"?> | 
| <configuration scan="true" scanPeriod="60 seconds" debug="false"> | 
|     <!-- 日志存放路径 --> | 
|     <property name="log.path" value="logs/ruoyi-file" /> | 
|    <!-- 日志输出格式 --> | 
|     <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /> | 
|   | 
|     <!-- 控制台输出 --> | 
|     <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> | 
|         <encoder> | 
|             <pattern>${log.pattern}</pattern> | 
|         </encoder> | 
|     </appender> | 
|   | 
|     <!-- 系统日志输出 --> | 
|     <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> | 
|         <file>${log.path}/info.log</file> | 
|         <!-- 循环政策:基于时间创建日志文件 --> | 
|         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | 
|             <!-- 日志文件名格式 --> | 
|             <fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern> | 
|             <!-- 日志最大的历史 60天 --> | 
|             <maxHistory>60</maxHistory> | 
|         </rollingPolicy> | 
|         <encoder> | 
|             <pattern>${log.pattern}</pattern> | 
|         </encoder> | 
|         <filter class="ch.qos.logback.classic.filter.LevelFilter"> | 
|             <!-- 过滤的级别 --> | 
|             <level>INFO</level> | 
|             <!-- 匹配时的操作:接收(记录) --> | 
|             <onMatch>ACCEPT</onMatch> | 
|             <!-- 不匹配时的操作:拒绝(不记录) --> | 
|             <onMismatch>DENY</onMismatch> | 
|         </filter> | 
|     </appender> | 
|   | 
|     <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"> | 
|         <file>${log.path}/error.log</file> | 
|         <!-- 循环政策:基于时间创建日志文件 --> | 
|         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | 
|             <!-- 日志文件名格式 --> | 
|             <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern> | 
|             <!-- 日志最大的历史 60天 --> | 
|             <maxHistory>60</maxHistory> | 
|         </rollingPolicy> | 
|         <encoder> | 
|             <pattern>${log.pattern}</pattern> | 
|         </encoder> | 
|         <filter class="ch.qos.logback.classic.filter.LevelFilter"> | 
|             <!-- 过滤的级别 --> | 
|             <level>ERROR</level> | 
|             <!-- 匹配时的操作:接收(记录) --> | 
|             <onMatch>ACCEPT</onMatch> | 
|             <!-- 不匹配时的操作:拒绝(不记录) --> | 
|             <onMismatch>DENY</onMismatch> | 
|         </filter> | 
|     </appender> | 
|   | 
|     <!-- 系统模块日志级别控制  --> | 
|     <logger name="com.ruoyi" level="info" /> | 
|     <!-- Spring日志级别控制  --> | 
|     <logger name="org.springframework" level="warn" /> | 
|   | 
|     <root level="info"> | 
|         <appender-ref ref="console" /> | 
|     </root> | 
|      | 
|     <!--系统操作日志--> | 
|     <root level="info"> | 
|         <appender-ref ref="file_info" /> | 
|         <appender-ref ref="file_error" /> | 
|     </root> | 
| </configuration> |