日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2023/12/1 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java没有打印mysql日志_0216 aop和打印数据库执行日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求

maven依賴

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)

小結

來個效果截圖:

通過本片文章,你可以學會:

給代碼添加aop切面,增加日志或者打印出方法執行總耗時;

給你的數據持久層打印出所有的sql語句,方便生產環境排查問題;

希望大家平安度過冠疫!每天持續精進!

原創不易,轉載請注明出處。

總結

以上是生活随笔為你收集整理的java没有打印mysql日志_0216 aop和打印数据库执行日志的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。