mirror of
https://github.com/RemainderTime/spring-boot-base-demo.git
synced 2026-06-03 00:17:50 +08:00
refactor(project): 重构项目配置和异常处理机制
- 更新 Docker Compose 配置从版本 1 到 3.8,并修改服务构建方式 - 将异常处理中的 ResponseCode 替换为 SystemStatus 枚举 - 统一全局异常处理器返回类型为 RetObj,替换原有的 GenericResponse - 修复 JWT 工具类中的空指针判断逻辑错误 - 优化 RSA 加密工具类,使用 Java 自带 Base64 实现替代 Apache 工具类 - 添加 Spring Security 密码编码器支持,增强用户密码安全性 - 完善日志配置文件,增加多种环境的日志输出策略 - 优化 Dockerfile 使用 JDK 17 环境并改进构建参数配置
This commit is contained in:
85
src/main/resources/logback-spring.xml
Normal file
85
src/main/resources/logback-spring.xml
Normal file
@@ -0,0 +1,85 @@
|
||||
<?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>
|
||||
Reference in New Issue
Block a user