pom 依赖
<dependency>
<groupId>p6spy
</groupId>
<artifactId>p6spy
</artifactId>
<version>3.9.0
</version>
</dependency>
spy.properties (需要放置在resource目录下)
# 驱动列表 多个使用逗号分隔
driverlist=com.mysql.cj.jdbc.Driver
# 指定日志记录器 值=
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
#appender=com.p6spy.engine.spy.appender.StdoutLogger
#appender=com.p6spy.engine.spy.appender.FileLogger
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
appender=cn.zhangfusheng.base.server.core.datasource.p6spy.P6SpyStdoutLogger
# 自定义日志格式,在类中定义 默认值=com.p6spy.engine.spy.appender.SingleLineFormat
logMessageFormat=cn.zhangfusheng.base.server.core.datasource.p6spy.P6SpySqlLog
# 时间格式化
databaseDialectDateFormat=yyyy-MM-dd HH:mm:ss
# 日志文件名称 默认值=spy.log ----
logfile=spy.log
# 日志是否追加 默认值=true
append=true
P6SpyStdoutLogger
package cn
.zhangfusheng
.base
.server
.core
.datasource
.p6spy
;
import cn
.zhangfusheng
.base
.server
.core
.config
.ServerAssemblyConfig
;
import cn
.zhangfusheng
.util
.base
.log
.ProjectLoggerStrategy
;
import com
.p6spy
.engine
.logging
.Category
;
import com
.p6spy
.engine
.spy
.appender
.FormattedLogger
;
import lombok
.extern
.slf4j
.Slf4j
;
import org
.springframework
.boot
.jdbc
.DatabaseDriver
;
@Slf4j
public class P6SpyStdoutLogger extends FormattedLogger {
@Override
public void logException(Exception e
) {
log
.error(e
.getMessage(), e
);
}
@Override
public void logText(String text
) {
log
.info(text
);
}
@Override
public boolean isCategoryEnabled(Category category
) {
return true;
}
}
P6SpySqlLog
package cn
.zhangfusheng
.base
.server
.core
.datasource
.p6spy
;
import com
.p6spy
.engine
.spy
.appender
.MessageFormattingStrategy
;
public class P6SpySqlLog implements MessageFormattingStrategy {
@Override
public String
formatMessage(int connectionId
, String now
, long elapsed
, String category
, String prepared
, String sql
, String url
) {
return "\n\tsql: " + sql
+
"\n\turl: " + url
;
}
}