Files
spring-boot-base-demo/src/main/resources/logback-spring.xml
海言 e2de84d5a9 refactor(project): 重构项目配置和异常处理机制
- 更新 Docker Compose 配置从版本 1 到 3.8,并修改服务构建方式
- 将异常处理中的 ResponseCode 替换为 SystemStatus 枚举
- 统一全局异常处理器返回类型为 RetObj,替换原有的 GenericResponse
- 修复 JWT 工具类中的空指针判断逻辑错误
- 优化 RSA 加密工具类,使用 Java 自带 Base64 实现替代 Apache 工具类
- 添加 Spring Security 密码编码器支持,增强用户密码安全性
- 完善日志配置文件,增加多种环境的日志输出策略
- 优化 Dockerfile 使用 JDK 17 环境并改进构建参数配置
2026-05-28 15:30:32 +08:00

86 lines
3.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<contextName>xf-boot-base</contextName>
<property name="log_home" value="logs"/>
<property name="log_pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
<!-- 控制台输出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log_pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- Info本地日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_home}/base-info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log_home}/base-%d{yyyy-MM-dd}-info.%i.log</fileNamePattern>
<maxFileSize>200MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${log_pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- Error本地日志 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log_home}/base-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log_home}/base-%d{yyyy-MM-dd}-error.%i.log</fileNamePattern>
<maxFileSize>200MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${log_pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- Logstash输出动态读取配置 -->
<springProperty scope="context" name="logIps" source="logstash.ips" defaultValue="127.0.0.1:4560"/>
<springProperty scope="context" name="appName" source="spring.application.name" defaultValue="xf-boot-base"/>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${logIps}</destination>
<keepAliveDuration>5 minutes</keepAliveDuration>
<connectionTimeout>5 seconds</connectionTimeout>
<reconnectionDelay>30 seconds</reconnectionDelay>
<waitStrategyType>sleeping</waitStrategyType>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"host":"${HOSTNAME}", "app_name":"${appName}"}</customFields>
</encoder>
</appender>
<!-- 开发与本地环境 -->
<springProfile name="dev,local">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
</springProfile>
<!-- 测试与预发布/生产环境 -->
<springProfile name="pre,prod">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</springProfile>
</configuration>