- Spring Boot에서 **log4jdbc** 드라이버를 사용하여 데이터베이스 쿼리 로그를 출력하는 방법 - `log4jdbc` 드라이버 설정과 로그 설정 방법
### 1. log4jdbc 의존성 추가
먼저, log4jdbc
를 프로젝트에 추가
사용 중인 빌드 도구에 따라 Maven
또는 Gradle
의존성 추가
Maven 의존성
pom.xml
파일에 의존성 추가
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
#### Gradle 의존성 `build.gradle` 파일에 의존성 추가
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16'
### 2. 데이터베이스 드라이버 설정
의존성 추가 후, application.properties
또는 application.yml
파일에서 log4jdbc
드라이버 설정
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mariadb://158.180.95.52:3306/insider
spring.datasource.username=insider
spring.datasource.password=insider!@
log4jdbc
를 통해 데이터베이스 쿼리가 로그에 출력된다.
3. 로그 설정 추가
로그를 더 구체적으로 관리하기 위해 log4jdbc
로거 설정을 추가한다.log4j2.xml
설정 파일에 아래와 같은 로거 설정을 추가하여 원하는 수준의 로그를 조정할 수 있다.
<Logger name="java.sql" level="INFO" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="jdbc.sqltiming" level="WARN" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="jdbc.sqlonly" level="INFO" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="jdbc.audit" level="WARN" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="jdbc.resultset" level="WARN" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="jdbc.resultsettable" level="WARN" additivity="false">
<AppenderRef ref="console" />
</Logger>
4. log4jdbc 로그 설정 레벨 상세 설명
- jdbc.sqlonly: SQL 문을 로깅
- jdbc.sqltiming: SQL 문과 실행 시간을 함께 표시
- jdbc.audit: ResultSet 제외 모든 JDBC 호출을 로깅하며, 로그 양이 많아 권장되지 않음
- jdbc.resultset: 모든 JDBC 호출과 ResultSet을 로깅하여 로그 양이 많아 권장되지 않음
- jdbc.resultsettable: 조회된 SQL 결과를 테이블 형태로 표시
- jdbc.connection: 데이터베이스 연결과 해제 관련 정보를 로깅
5. 로깅 레벨 선택 가이드
로그 레벨 설정은 개발 단계에 따라 조정할 수 있다
- DEBUG / INFO: 개발 중 로그를 추적할 때 유용하다
- WARN: 중요한 경고성 로그만 표시한다
- ERROR / FATAL: 심각한 문제나 에러 로그만 표시하여 프로덕션 환경에서 사용하기 적합하다
예를 들어, WARN
으로 설정하면 그보다 낮은 DEBUG
나 INFO
로그는 출력되지 않는다
이 설정으로 log4jdbc
를 활용하여 데이터베이스 쿼리와 JDBC 호출 정보를 효과적으로 모니터링할 수 있다.
'프레임워크 > Spring' 카테고리의 다른 글
스프링 프레임워크와 스프링 부트 차이 (0) | 2024.05.22 |
---|---|
lombok Getter Setter Undefined 어노테이션 인식 안될때 (1) | 2023.12.31 |
Spring error Web server failed to start. Port 8080 was already in use. (0) | 2023.11.14 |