반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스프링부트
- Kafka
- 코테공부
- JPA스터디
- 스프링 공부
- JPA
- 프로그래머스
- 자바공부
- 카프카
- 플러터 개발
- nestjs스터디
- JPA공부
- 코테준비
- 플러터 공부
- 알고리즘공부
- 자료구조공부
- Flutter
- 스프링
- 기술공부
- Axon framework
- nestjs공부
- 스프링부트공부
- JPA 공부
- K8S
- 스프링공부
- DDD
- nestjs
- querydsl
- 기술면접공부
- JPA예제
Archives
- Today
- Total
DevBoi
[QueryDsl] Spring 3 버전 p6spy 적용 본문
반응형
로깅에서 실제 동작하는 쿼리 로깅찍는 법
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
logging:
level:
p6spy: info
org:
hibernate:
type:
descriptor:
sql: trace
package com.boiler.core.backend.config;
import com.p6spy.engine.logging.Category;
import com.p6spy.engine.spy.P6SpyOptions;
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
import jakarta.annotation.PostConstruct;
import org.hibernate.engine.jdbc.internal.FormatStyle;
import org.springframework.context.annotation.Configuration;
import java.util.Locale;
@Configuration
public class P6SpyFomatter implements MessageFormattingStrategy {
@PostConstruct
public void setLogMessageFormat() {
P6SpyOptions.getActiveInstance().setLogMessageFormat(this.getClass().getName());
}
@Override
public String formatMessage(int connectionId, String now, long elapsed, String category, String prepared, String sql, String url) {
sql = formatSql(category, sql);
return String.format("[%s] | %d ms | %s", category, elapsed, formatSql(category, sql));
}
private String formatSql(String category, String sql) {
if (sql != null && !sql.trim().isEmpty() && Category.STATEMENT.getName().equals(category)) {
String trimmedSQL = sql.trim().toLowerCase(Locale.ROOT);
if (trimmedSQL.startsWith("create") || trimmedSQL.startsWith("alter") || trimmedSQL.startsWith("comment")) {
sql = FormatStyle.DDL.getFormatter().format(sql);
} else {
sql = FormatStyle.BASIC.getFormatter().format(sql);
}
return sql;
}
return sql;
}
}
위 처럼 설정하면, 로깅되는 쿼리가 ?로 된 파라미터가 아니라, 실제 수행하는 파라미터가 들어간 쿼리로 있어서
바로 dbms로 돌려볼수있다.
반응형
'Develop > [JPA]' 카테고리의 다른 글
[JPA] Nested Response List 처리 (1) | 2023.09.30 |
---|---|
[JPA] 스프링 Timezone 설정 + Aws, Docker mariadb timezone설정 (0) | 2023.09.30 |
[JPA] Querydsl & Paging (0) | 2023.09.02 |
[JPA] JPAUpdateClause 사용 (0) | 2023.09.02 |
[Jpa] Querydsl build Setting (0) | 2023.09.02 |