반응형
Notice
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 | 31 |
Tags
- 보안
- 프로그래밍언어
- 코딩
- 프로그래밍
- 머신러닝
- 알고리즘
- 버전관리
- 자바스크립트
- I'm Sorry
- 소프트웨어
- 데이터분석
- Yes
- 파이썬
- 컴퓨터비전
- 빅데이터
- 사이버보안
- 네트워크
- 자료구조
- 데이터구조
- 컴퓨터과학
- 데이터과학
- 클라우드컴퓨팅
- 컴퓨터공학
- 네트워크보안
- 소프트웨어공학
- 딥러닝
- 인공지능
- 웹개발
- 데이터베이스
- 2
Archives
- Today
- Total
스택큐힙리스트
스프링 부트에서 SQL 문을 로그하는 방법은 무엇인가요? 본문
반응형
나는 SQL 문을 파일에 기록하고 싶습니다.
application.properties
에 다음과 같은 속성을 가지고 있습니다:
spring.datasource.url=...
spring.datasource.username=user
spring.datasource.password=1234
spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
security.ignored=true
security.basic.enabled=false
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=INFO
logging.file=c:/temp/my-log/app.log
내 애플리케이션을 실행할 때,
cmd> mvn spring-boot:run
콘솔에 SQL 문이 표시되지만, app.log에는 표시되지 않습니다. 파일에는 Spring의 기본 로그만 포함되어 있습니다.
로그 파일에서 SQL 문을 보기 위해 어떻게 해야 하나요?
답변 1
다음을 속성 파일에 사용해 보세요:
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
답변 2
Spring Boot에서 SQL 문을 기록하는 방법은 여러 가지가 있습니다. 이 페이지에서는 Spring Boot와 함께 사용할 수 있는 두 가지 주요 방법을 설명하겠습니다. 첫 번째 방법은 Spring Boot의 기본 로깅을 사용하는 것이며, 두 번째 방법은 별도의 라이브러리를 사용하는 것입니다.Spring Boot에서 SQL 문을 기록하는 가장 간단한 방법은 로깅 메커니즘을 사용하는 것입니다. Spring Boot는 자체적으로 기본적인 로깅 설정을 제공하며, 이는 SQL 문을 기록하기에 충분합니다. 일반적으로 개발 환경에서는 개발자를 위해 SQL 문이 콘솔에 출력되면 됩니다. 이를 위해서는 `application.properties`(또는 `application.yml`) 파일에 다음과 같은 설정을 추가해야 합니다.
```properties
spring.jpa.show-sql=true
```
이 설정을 추가하면 Spring Boot에서 실행되는 모든 SQL 문이 콘솔에 출력됩니다. 이는 간단하게 SQL 문을 확인하고 디버깅하는 데 사용할 수 있습니다. 그러나 이 방법은 운영 환경에서는 권장되지 않습니다.
더 고급 로깅 요구사항이 있는 경우, 스프링 개발 도구인 `P6Spy`와 같은 별도의 라이브러리를 사용할 수도 있습니다. `P6Spy`를 사용하면 SQL 문 외에도 Spring Boot 데이터베이스의 성능과 관련된 다양한 정보를 기록할 수 있습니다.
`P6Spy`를 Spring Boot에 통합하려면 `pom.xml`에 다음 종속성을 추가해야 합니다.
```xml
```
그리고 데이터베이스에 대한 연결 URL을 수정해야 합니다. 예를 들어, MySQL을 사용하는 경우 다음과 같이 `application.properties` 파일을 수정할 수 있습니다.
```properties
spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/mydatabase
```
이렇게 수정하면 `P6Spy`가 JDBC 드라이버를 감싸기 때문에 데이터베이스로의 모든 연결이 `P6Spy`를 통과하게 됩니다. `P6Spy`는 모든 SQL 문과 해당 실행 시간을 로깅하며, 상세한 성능 정보를 포함합니다.
이렇게 Spring Boot에서 SQL 문을 로깅하는 두 가지 방법을 설명했습니다. 간단하게 기본 로깅을 사용하거나, 더 많은 기능을 제공하는 별도의 라이브러리인 `P6Spy`를 사용할 수 있습니다. 선택할 방법은 많지만 개발 환경과 요구사항에 맞게 적절한 방법을 선택할 수 있습니다.
반응형
Comments