feat(core): 增强文件上传配置和异常处理
- 配置文件上传大小限制,单个文件最大10MB,请求最大50MB - 添加文件写入磁盘阈值配置,超过2MB写入临时文件 - 实现文件上传超限异常处理,返回友好提示信息 - 优化应用启动日志,显示访问地址和运行环境信息 - 增加支付订单查询和更新的日志记录 - 创建阿里云OSS配置属性类,统一管理OSS参数 - 添加业务异常类,支持自定义错误码和消息 - 完善系统架构文档,描述前后端包结构和核心组件 - 新增商品创建请求DTO,支持SKU列表和校验规则 - 添加风控相关的客户信息和商品信息DTO - 配置Logback日志框架,支持不同环境的日志输出策略
This commit is contained in:
@@ -72,6 +72,16 @@ pingpong:
|
||||
# 服务器配置
|
||||
server:
|
||||
port: 8080
|
||||
servlet:
|
||||
context-path: /
|
||||
# 文件上传配置
|
||||
multipart:
|
||||
# 单个文件最大大小(10MB)
|
||||
max-file-size: 10MB
|
||||
# 请求最大大小(50MB,支持多文件上传)
|
||||
max-request-size: 50MB
|
||||
# 文件写入磁盘的阈值(超过此大小会写入临时文件)
|
||||
file-size-threshold: 2MB
|
||||
|
||||
# 阿里云OSS相关配置
|
||||
aliyun:
|
||||
@@ -80,6 +90,4 @@ aliyun:
|
||||
accessKey: sAQR2swByBgmMOofH97hSJT638aVcJ
|
||||
endpoint: https://oss-cn-hangzhou.aliyuncs.com
|
||||
bucketName: mtkj2025
|
||||
servlet:
|
||||
context-path: /
|
||||
|
||||
|
||||
119
mt-pay/src/main/resources/logback-spring.xml
Normal file
119
mt-pay/src/main/resources/logback-spring.xml
Normal file
@@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!-- 定义日志文件的存储地址 -->
|
||||
<property name="LOG_HOME" value="./logs"/>
|
||||
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 日志文件输出的文件名 -->
|
||||
<FileNamePattern>${LOG_HOME}/mt-pay.%d{yyyy-MM-dd}.log</FileNamePattern>
|
||||
<!-- 日志文件保留天数 -->
|
||||
<MaxHistory>30</MaxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<!-- 日志文件最大的大小 -->
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<MaxFileSize>10MB</MaxFileSize>
|
||||
</triggeringPolicy>
|
||||
</appender>
|
||||
|
||||
<!-- 错误日志文件 -->
|
||||
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<FileNamePattern>${LOG_HOME}/mt-pay-error.%d{yyyy-MM-dd}.log</FileNamePattern>
|
||||
<MaxHistory>30</MaxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<MaxFileSize>10MB</MaxFileSize>
|
||||
</triggeringPolicy>
|
||||
<!-- 此日志文件只记录ERROR级别的 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 异步输出 -->
|
||||
<appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<!-- 不丢失日志,默认如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<!-- 更改默认的队列的深度,该值会影响性能,默认值为256 -->
|
||||
<queueSize>512</queueSize>
|
||||
<appender-ref ref="FILE"/>
|
||||
</appender>
|
||||
|
||||
<!-- 异步输出错误日志 -->
|
||||
<appender name="ASYNC_ERROR_FILE" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<queueSize>512</queueSize>
|
||||
<appender-ref ref="ERROR_FILE"/>
|
||||
</appender>
|
||||
|
||||
<!-- 开发环境:控制台和文件都输出 -->
|
||||
<springProfile name="dev">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="ASYNC_FILE"/>
|
||||
<appender-ref ref="ASYNC_ERROR_FILE"/>
|
||||
</root>
|
||||
<!-- 项目包路径,控制日志级别 -->
|
||||
<logger name="com.mtkj.mtpay" level="DEBUG"/>
|
||||
<!-- MyBatis SQL日志 -->
|
||||
<logger name="com.mtkj.mtpay.mapper" level="DEBUG"/>
|
||||
</springProfile>
|
||||
|
||||
<!-- 测试环境:只输出文件 -->
|
||||
<springProfile name="test">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="ASYNC_FILE"/>
|
||||
<appender-ref ref="ASYNC_ERROR_FILE"/>
|
||||
</root>
|
||||
<logger name="com.mtkj.mtpay" level="INFO"/>
|
||||
</springProfile>
|
||||
|
||||
<!-- 生产环境:只输出文件,日志级别为INFO -->
|
||||
<springProfile name="prod">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="ASYNC_FILE"/>
|
||||
<appender-ref ref="ASYNC_ERROR_FILE"/>
|
||||
</root>
|
||||
<logger name="com.mtkj.mtpay" level="INFO"/>
|
||||
<!-- 生产环境关闭MyBatis SQL日志 -->
|
||||
<logger name="com.mtkj.mtpay.mapper" level="WARN"/>
|
||||
</springProfile>
|
||||
|
||||
<!-- 默认配置 -->
|
||||
<springProfile name="!dev & !test & !prod">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="ASYNC_FILE"/>
|
||||
<appender-ref ref="ASYNC_ERROR_FILE"/>
|
||||
</root>
|
||||
<logger name="com.mtkj.mtpay" level="INFO"/>
|
||||
</springProfile>
|
||||
|
||||
<!-- 第三方框架日志级别 -->
|
||||
<logger name="org.springframework" level="WARN"/>
|
||||
<logger name="org.mybatis" level="WARN"/>
|
||||
<logger name="com.alibaba.druid" level="WARN"/>
|
||||
<logger name="com.aliyun.oss" level="WARN"/>
|
||||
|
||||
</configuration>
|
||||
|
||||
Reference in New Issue
Block a user