打印mysql日志 -p6spy的使用

it2024-07-24  40

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; /** * @ClassName: P6SpyStdoutLogger * @Author: ZFS * @Date: 2018/12/29 12:03 */ @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; /** * @ClassName: P6SpySqlLog * @Author: ZFS * @Date: 2018/12/29 12:03 */ 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; } }
最新回复(0)