mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-08 01:28:24 +08:00
!408 日志审计时候,能否提供多数据源下的数据库名称打印
Merge pull request !408 from huang__2/main
This commit is contained in:
commit
f919c176e9
@ -16,6 +16,8 @@
|
||||
package com.mybatisflex.core.audit;
|
||||
|
||||
import com.mybatisflex.core.FlexConsts;
|
||||
import com.mybatisflex.core.datasource.DataSourceKey;
|
||||
import com.mybatisflex.core.util.StringUtil;
|
||||
import org.apache.ibatis.mapping.BoundSql;
|
||||
import org.apache.ibatis.mapping.ParameterMapping;
|
||||
import org.apache.ibatis.mapping.ParameterMode;
|
||||
@ -99,6 +101,10 @@ public class AuditManager {
|
||||
if (auditMessage == null) {
|
||||
return supplier.execute();
|
||||
}
|
||||
String key = DataSourceKey.get();
|
||||
if (StringUtil.isNotBlank(key)) {
|
||||
auditMessage.setDsName(key);
|
||||
}
|
||||
auditMessage.setQueryTime(clock.getTick());
|
||||
try {
|
||||
T result = supplier.execute();
|
||||
|
||||
@ -95,6 +95,11 @@ public class AuditMessage implements Serializable {
|
||||
*/
|
||||
private long elapsedTime;
|
||||
|
||||
/**
|
||||
* 数据库名称
|
||||
*/
|
||||
private String dsName;
|
||||
|
||||
/**
|
||||
* 其他扩展元信息。
|
||||
*/
|
||||
@ -260,6 +265,14 @@ public class AuditMessage implements Serializable {
|
||||
metas.put(key, value);
|
||||
}
|
||||
|
||||
public String getDsName() {
|
||||
return dsName;
|
||||
}
|
||||
|
||||
public void setDsName(String dsName) {
|
||||
this.dsName = dsName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AuditMessage{" +
|
||||
@ -275,6 +288,7 @@ public class AuditMessage implements Serializable {
|
||||
", queryCount=" + queryCount +
|
||||
", queryTime=" + queryTime +
|
||||
", elapsedTime=" + elapsedTime +
|
||||
", dsName=" + dsName +
|
||||
", metas=" + metas +
|
||||
'}';
|
||||
}
|
||||
|
||||
@ -18,11 +18,11 @@ package com.mybatisflex.core.audit;
|
||||
|
||||
public class ConsoleMessageCollector implements MessageCollector {
|
||||
|
||||
private SqlDebugPrinter printer = (sql, tookTimeMillis) -> {
|
||||
private SqlDebugPrinter printer = (sql, dsName, tookTimeMillis) -> {
|
||||
if (tookTimeMillis != null) {
|
||||
System.out.println("Flex exec sql took " + tookTimeMillis + " ms >>> " + sql);
|
||||
System.out.println("Flex exec dsName >>> " + dsName + " sql took " + tookTimeMillis + " ms >>> " + sql);
|
||||
} else {
|
||||
System.out.println("Flex exec sql >>> " + sql);
|
||||
System.out.println("Flex exec dsName >>> " + dsName + " sql >>> " + sql);
|
||||
}
|
||||
};
|
||||
|
||||
@ -35,12 +35,12 @@ public class ConsoleMessageCollector implements MessageCollector {
|
||||
|
||||
@Override
|
||||
public void collect(AuditMessage message) {
|
||||
printer.print(message.getFullSql(), message.getElapsedTime());
|
||||
printer.print(message.getFullSql(), message.getDsName(), message.getElapsedTime());
|
||||
}
|
||||
|
||||
public interface SqlDebugPrinter {
|
||||
|
||||
void print(String sql, Long tookTimeMillis);
|
||||
void print(String sql, String dsName, Long tookTimeMillis);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user