MyBatisFlex内置了自己的SQL日志解决方案。
区别于传统的框架,MyBatisFlex的日志记录更加完善,将所有的SQL语句和参数进行了完整输出,复制即可直接执行。
我的实际使用配置如下。
public class MyBatisFlexConfig {
// 慢SQL阈值,默认1秒
@Value("${mybatis-flex.audit.slow-sql-threshold:1000}")
private long slowSqlThreshold;
public MyBatisFlexConfig(@Value("${mybatis-flex.audit.enable:false}") boolean auditEnable) {
// 1. 设置是否开启审计
AuditManager.setAuditEnable(auditEnable);
// 2. 配置日志收集器
AuditManager.setMessageCollector(auditMessage -> {
long elapsedTime = auditMessage.getElapsedTime();
// 场景 A:慢 SQL 记录 (阈值之上,使用 WARN 级别)
if (elapsedTime > slowSqlThreshold) {
log.warn("[慢SQL告警] 耗时: {}ms, SQL: {}", elapsedTime, auditMessage.getFullSql());
return;
}
// 场景 B:普通 SQL 记录
if (log.isInfoEnabled()) {
log.info("[SQL-info] SQL: {}, 耗时: {}ms", auditMessage.getFullSql(), elapsedTime);
}
});
}
}
这里使用了两个参数,用来管理配置自定义日志记录器。
一个是日志记录开关,决定了日志记录是否开启。
一个是慢SQL的时间标准,定义了SQL阈值到达多少后记录为慢SQL。

Comments NOTHING