<?xml version="1.0" encoding="UTF-8"?>
|
<configuration>
|
|
<!-- 项目项目 -->
|
<property name="app.name" value="fzzy-dzhwk"/>
|
<!-- 文件路径 -->
|
<property name="log.path" value="D:/fzzy/app/fzzy-dzhwk/logs"/>
|
|
|
<!-- 彩色日志插件 -->
|
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
|
<conversionRule conversionWord="wEx"
|
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
|
|
<!-- 控制台彩色日志格式,注意:%L打印行号对性能有影响,因此不建议在生产环境使用。 -->
|
<property name="CONSOLE_PATTERN"
|
value="%clr([%d{HH:mm:ss}){faint} %clr(%p) %clr(%.10t]){faint} %clr(%C{39}){cyan} %clr(%M:%L){magenta}: %m%n%wEx"/>
|
<!-- 输出到文件日志格式 -->
|
<property name="PATTERN" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
|
|
|
<!--输出到控制台-->
|
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
|
<!-- <level>info</level>-->
|
<!-- </filter>-->
|
<encoder>
|
<pattern>${CONSOLE_PATTERN}</pattern>
|
<!-- 设置字符集 -->
|
<charset>UTF-8</charset>
|
</encoder>
|
</appender>
|
|
|
<!-- 系统日志输出 -->
|
<appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<!-- 文件路径 -->
|
<file>${log.path}/${app.name}-info.log</file>
|
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<!-- 文件名称 -->
|
<fileNamePattern>${log.path}/${app.name}-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<!--日志文件保留天数 -->
|
<maxHistory>100</maxHistory>
|
<!-- 日志大小 -->
|
<timeBasedFileNamingAndTriggeringPolicy
|
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
<maxFileSize>100MB</maxFileSize>
|
</timeBasedFileNamingAndTriggeringPolicy>
|
</rollingPolicy>
|
<encoder>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
<charset>UTF-8</charset>
|
</encoder>
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
<pattern>${PATTERN}</pattern>
|
</layout>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<!-- 过滤的级别 -->
|
<level>INFO</level>
|
<!-- 匹配时的操作:接收(记录) -->
|
<onMatch>ACCEPT</onMatch>
|
<!-- 不匹配时的操作:拒绝(不记录) -->
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
</appender>
|
|
|
<!-- 系统日志输出 -->
|
<appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<!-- 文件路径 -->
|
<file>${log.path}/${app.name}-warn.log</file>
|
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<!-- 文件名称 -->
|
<fileNamePattern>${log.path}/${app.name}-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<!--日志文件保留天数 -->
|
<maxHistory>100</maxHistory>
|
<!-- 日志大小 -->
|
<timeBasedFileNamingAndTriggeringPolicy
|
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
<maxFileSize>100MB</maxFileSize>
|
</timeBasedFileNamingAndTriggeringPolicy>
|
</rollingPolicy>
|
<encoder>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
<charset>UTF-8</charset>
|
</encoder>
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
<pattern>${PATTERN}</pattern>
|
</layout>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<!-- 过滤的级别 -->
|
<level>WARN</level>
|
<!-- 匹配时的操作:接收(记录) -->
|
<onMatch>ACCEPT</onMatch>
|
<!-- 不匹配时的操作:拒绝(不记录) -->
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
</appender>
|
|
|
<!-- 系统日志输出 -->
|
<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<!-- 文件路径 -->
|
<file>${log.path}/${app.name}-error.log</file>
|
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<!-- 文件名称 -->
|
<fileNamePattern>${log.path}/${app.name}-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<!--日志文件保留天数 -->
|
<maxHistory>100</maxHistory>
|
<!-- 日志大小 -->
|
<timeBasedFileNamingAndTriggeringPolicy
|
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
<maxFileSize>100MB</maxFileSize>
|
</timeBasedFileNamingAndTriggeringPolicy>
|
</rollingPolicy>
|
<encoder>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
<charset>UTF-8</charset>
|
</encoder>
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
<pattern>${PATTERN}</pattern>
|
</layout>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<!-- 过滤的级别 -->
|
<level>ERROR</level>
|
<!-- 匹配时的操作:接收(记录) -->
|
<onMatch>ACCEPT</onMatch>
|
<!-- 不匹配时的操作:拒绝(不记录) -->
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
</appender>
|
|
|
<!--root配置必须在appender下边,root日志级别比appender高,如果:root是ERROR,appender是INFO,那么就是ERROR-->
|
|
<!-- 系统模块日志级别控制 -->
|
<logger name="org.springframework" level="warn"/>
|
<logger name="com.bstek.dorado" level="warn"/>
|
<logger name="com.ruoyi" level="info"/>
|
<logger name="com.fzzy" level="info"/>
|
|
<!-- 开发环境 -->
|
<springProfile name="dev">
|
<logger name="com.ruoyi" level="debug"/>
|
<logger name="com.fzzy" level="debug"/>
|
<root level="INFO">
|
<appender-ref ref="STDOUT"/>
|
</root>
|
</springProfile>
|
|
|
<!-- 测试环境 -->
|
<springProfile name="uat">
|
<root level="INFO">
|
<appender-ref ref="FILE_INFO"/>
|
<appender-ref ref="FILE_ERROR"/>
|
</root>
|
</springProfile>
|
|
<!-- 生产环境 -->
|
<springProfile name="pro">
|
<root level="INFO">
|
<appender-ref ref="FILE_INFO"/>
|
<appender-ref ref="FILE_ERROR"/>
|
</root>
|
</springProfile>
|
|
|
</configuration>
|