This commit is contained in:
litianxiang
2025-10-24 17:49:16 +08:00
parent e98c209e4a
commit 12690c2f2c

View File

@@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<!-- 日志存放路径 -->
<property name="log.path" value="./logs" />
<!-- 应用名称 -->
<property name="app.name" value="lanecarford" />
<!-- 控制台日志输出格式 -->
<property name="log.pattern.console" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />
<!-- 文件日志输出格式 -->
<property name="log.pattern.file" value="${FILE_LOG_PATTERN:-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%15t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />
<!-- 控制台输出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern.console}</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}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
<!-- 单个文件最大大小 -->
<maxFileSize>100MB</maxFileSize>
<!-- 总日志文件大小 -->
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${log.pattern.file}</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 过滤器只记录INFO及以上级别排除ERROR -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</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}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
<!-- 单个文件最大大小 -->
<maxFileSize>100MB</maxFileSize>
<!-- 总日志文件大小 -->
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${log.pattern.file}</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 过滤器只记录ERROR级别 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 业务日志输出 -->
<appender name="FILE_BUSINESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/${app.name}-business.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/${app.name}-business.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<maxFileSize>100MB</maxFileSize>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${log.pattern.file}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 项目特定日志级别控制 -->
<logger name="com.aida.lanecarford" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE_INFO" />
<appender-ref ref="FILE_ERROR" />
<appender-ref ref="FILE_BUSINESS" />
</logger>
<!-- MyBatis Plus日志级别控制 -->
<logger name="com.aida.lanecarford.mapper" level="DEBUG" />
<logger name="com.baomidou.mybatisplus" level="INFO" />
<!-- Spring框架日志级别控制 -->
<logger name="org.springframework" level="WARN" />
<logger name="org.springframework.web" level="INFO" />
<logger name="org.springframework.security" level="INFO" />
<!-- Swagger日志级别控制 -->
<logger name="org.springdoc" level="INFO" />
<logger name="io.swagger" level="WARN" />
<!-- HTTP客户端日志级别控制 -->
<logger name="org.apache.http" level="WARN" />
<logger name="okhttp3" level="INFO" />
<!-- 数据库连接池日志级别控制 -->
<logger name="com.zaxxer.hikari" level="INFO" />
<logger name="com.alibaba.druid" level="INFO" />
<!-- 根日志级别 -->
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE_INFO" />
<appender-ref ref="FILE_ERROR" />
</root>
<!-- 开发环境配置 -->
<springProfile name="dev">
<logger name="com.aida.lanecarford" level="INFO" />
<logger name="org.springframework.web" level="INFO" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</springProfile>
<!-- 测试环境配置 -->
<springProfile name="test">
<logger name="com.aida.lanecarford" level="INFO" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE_INFO" />
<appender-ref ref="FILE_ERROR" />
</root>
</springProfile>
<!-- 生产环境配置 -->
<springProfile name="prod">
<logger name="com.aida.lanecarford" level="WARN" />
<logger name="org.springframework" level="ERROR" />
<root level="WARN">
<appender-ref ref="FILE_INFO" />
<appender-ref ref="FILE_ERROR" />
</root>
</springProfile>
</configuration>