- 添加商品实体类MtProduct及其Mapper接口 - 添加商品SKU实体类MtProductSku及其Mapper接口 - 配置MyBatis-Plus分页插件和自动填充处理器 - 完善实体字段注释和数据类型定义 - 集成SLF4J日志功能并添加详细使用指南文档
5.7 KiB
5.7 KiB
日志使用指南
概述
项目已全面集成SLF4J日志功能,使用Logback作为日志实现框架。所有关键类都已添加日志记录,便于问题排查和系统监控。
日志配置
日志配置文件
- 位置:
src/main/resources/logback-spring.xml - 功能: 配置日志输出格式、文件路径、日志级别等
日志级别
- DEBUG: 详细的调试信息,通常只在开发环境使用
- INFO: 一般信息,记录系统运行状态和关键操作
- WARN: 警告信息,表示潜在问题但不影响系统运行
- ERROR: 错误信息,表示系统错误需要关注
日志输出
- 控制台输出: 开发环境默认输出到控制台
- 文件输出:
- 所有日志:
logs/mt-pay.{日期}.log - 错误日志:
logs/mt-pay-error.{日期}.log
- 所有日志:
- 日志轮转: 按天轮转,保留30天,单文件最大10MB
已添加日志的类
1. 配置类
- ✅
MyBatisPlusConfig- MyBatis-Plus配置日志 - ✅
RestClientConfig- RestClient配置日志 - ✅
WebConfig- Web配置(跨域)日志 - ✅
DruidDataSourceConfig- 数据源配置日志(已有) - ✅
MyMetaObjectHandler- 自动填充日志(已有)
2. 控制器类
- ✅
ProductController- 商品管理接口日志(已有) - ✅
PaymentController- 支付接口日志(已有) - ✅
CallbackController- 回调接口日志(已有)
3. 服务实现类
- ✅
ProductServiceImpl- 商品服务日志(已增强) - ✅
PaymentOrderServiceImpl- 支付订单服务日志(已增强) - ✅
PingPongPayServiceImpl- PingPong支付服务日志(已有) - ✅
SignatureServiceImpl- 签名服务日志(已有) - ✅
CallbackServiceImpl- 回调服务日志(已有) - ✅
OssServiceImpl- OSS服务日志(已有)
4. 工具类
- ✅
OrderIdGenerator- 订单号生成器日志(已添加)
5. 异常处理
- ✅
GlobalExceptionHandler- 全局异常处理日志(已有)
6. 主应用类
- ✅
MtPayApplication- 应用启动日志(已增强)
日志使用示例
在类中使用日志
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class YourService {
public void doSomething() {
// 记录信息日志
log.info("开始执行操作,参数: {}", param);
try {
// 业务逻辑
log.debug("调试信息: {}", debugInfo);
} catch (Exception e) {
// 记录错误日志
log.error("操作失败,参数: {}", param, e);
throw e;
}
log.info("操作完成,结果: {}", result);
}
}
日志级别使用建议
-
DEBUG:
- 详细的执行流程
- 中间变量值
- SQL参数值(MyBatis)
-
INFO:
- 关键业务操作开始/结束
- 重要状态变更
- 外部接口调用
-
WARN:
- 业务异常(如订单不存在但继续处理)
- 配置问题
- 性能警告
-
ERROR:
- 系统异常
- 数据库操作失败
- 外部接口调用失败
日志格式
控制台格式
2025-12-19 16:37:50.530 [restartedMain] INFO com.mtkj.mtpay.MtPayApplication - 应用启动成功!
文件格式
2025-12-19 16:37:50.530 [http-nio-8080-exec-1] INFO com.mtkj.mtpay.controller.ProductController - 创建商品请求:ProductRequestDTO(...)
环境配置
开发环境 (dev)
- 控制台输出: ✅
- 文件输出: ✅
- 日志级别: DEBUG
- MyBatis SQL日志: ✅
测试环境 (test)
- 控制台输出: ❌
- 文件输出: ✅
- 日志级别: INFO
- MyBatis SQL日志: ❌
生产环境 (prod)
- 控制台输出: ❌
- 文件输出: ✅
- 日志级别: INFO
- MyBatis SQL日志: ❌
日志文件位置
- 日志目录:
./logs/(项目根目录) - 所有日志:
logs/mt-pay.{日期}.log - 错误日志:
logs/mt-pay-error.{日期}.log
日志查看
开发环境
- 直接在IDE控制台查看
- 或查看
logs/目录下的日志文件
生产环境
- 使用
tail -f logs/mt-pay-*.log实时查看 - 使用
grep ERROR logs/mt-pay-*.log查找错误 - 使用日志分析工具(如ELK、Graylog等)
最佳实践
-
使用占位符: 使用
{}占位符而不是字符串拼接// ✅ 推荐 log.info("用户ID: {}, 操作: {}", userId, action); // ❌ 不推荐 log.info("用户ID: " + userId + ", 操作: " + action); -
异常日志: 记录异常时包含堆栈信息
// ✅ 推荐 log.error("操作失败", e); // ❌ 不推荐 log.error("操作失败: " + e.getMessage()); -
敏感信息: 不要记录密码、密钥等敏感信息
// ❌ 不要这样做 log.info("用户密码: {}", password); -
日志级别: 根据重要性选择合适的日志级别
- 关键业务操作: INFO
- 调试信息: DEBUG
- 警告: WARN
- 错误: ERROR
常见问题
Q: 如何修改日志级别?
A: 修改 logback-spring.xml 中对应环境的日志级别配置。
Q: 如何查看SQL日志?
A: 开发环境默认开启,生产环境已关闭。可在 logback-spring.xml 中修改 com.mtkj.mtpay.mapper 的日志级别。
Q: 日志文件太大怎么办?
A: 已配置日志轮转,按天轮转,单文件最大10MB,保留30天。
Q: 如何禁用某个类的日志?
A: 在 logback-spring.xml 中添加:
<logger name="com.mtkj.mtpay.YourClass" level="OFF"/>
总结
项目已全面集成SLF4J日志功能,所有关键操作都有日志记录。通过合理的日志级别和格式,可以快速定位问题、监控系统运行状态。