java没有打印mysql日志_0216 aop和打印数据库执行日志

需求

b6f48bde59e8725f6b855ba787d553a0.png

maven依赖

dde862088de274b3f79c38d17e4b4bdf.png

p6spy

p6spy

3.8.7

com.google.guava

guava

28.2-jre

org.springframework.boot

spring-boot-starter-data-jpa

org.springframework.boot

spring-boot-starter-web

mysql

mysql-connector-java

runtime

org.projectlombok

lombok

true

打印sql

配置要点:

驱动配置 application.properties

spring.datasource.driver-class-name=com.p6spy.engine.spy.P6SpyDriver

spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/demo_datasource

psy配置

# 单行日志

logMessageFormat=com.p6spy.engine.spy.appender.SingleLineFormat

# 使用Slf4J记录sql

appender=com.p6spy.engine.spy.appender.Slf4JLogger

# 是否开启慢SQL记录

outagedetection=true

# 慢SQL记录标准,单位秒

outagedetectioninterval=2

aop打印持久层执行时间

使用aop实现;

package com.springbootpractice.demo.p6spy.aop;

import lombok.SneakyThrows;

import lombok.extern.slf4j.Slf4j;

import org.aspectj.lang.ProceedingJoinPoint;

import org.aspectj.lang.annotation.Around;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Pointcut;

import org.springframework.stereotype.Component;

import org.springframework.util.StopWatch;

/**

* 说明:aop配置

* @author carter

* 创建时间: 2020年02月16日 8:49 下午

**/

@Aspect

@Component

@Slf4j

public class PrintTimeCostAspectJConfig {

@SneakyThrows

@Around("myPointCut()")

public Object around(ProceedingJoinPoint pj) {

Object res = null;

String methodName = pj.getSignature().toShortString();

StopWatch stopWatch = new StopWatch(methodName);

stopWatch.start();

try {

res = pj.proceed();

} catch (Throwable ex) {

throw ex;

} finally {

stopWatch.stop();

log.warn("{}执行耗时{}毫秒", methodName, stopWatch.getTotalTimeMillis());

}

return res;

}

@Pointcut("execution(* com.springbootpractice.demo.p6spy.web..*(..))")

public void myPointCut() {

}

}

启用aop注解:

@EnableAspectJAutoProxy(proxyTargetClass = true)

小结

来个效果截图:

8cc8993f1af85c188d09324b7a96a80c.png

通过本片文章,你可以学会:

给代码添加aop切面,增加日志或者打印出方法执行总耗时;

给你的数据持久层打印出所有的sql语句,方便生产环境排查问题;

希望大家平安度过冠疫!每天持续精进!

095c28e60e520a3b187226798effbee4.png

原创不易,转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值