JAVA
log4jdbc
모르는 개발자
2023. 12. 28. 11:22
log4jdbc란
- log4jdbc는 log4j를 기반으로 한 JDBC 드라이버입니다.
- 주요 목적은 애플리케이션에서 실행되는 JDBC 쿼리를 로깅하고, 쿼리에 대한 실행 결과를 로깅하는 것입니다.
- 데이터베이스와의 통신 과정에서 발생하는 쿼리와 쿼리 결과를 로그로 남기는 기능을 제공합니다.
환경: STS4, Maven
pom.xml
<!-- mariadb -->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<!-- sql 로그 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
/src/main/resources/application.yml
spring:
datasource:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
jdbc-url: jdbc:log4jdbc:mariadb://localhost:3306/db이름
username: 유저이름
password: 비밀번호
/src/main/resources/log4jdbc.log4j2.properties
- 없으면 생성해주세요.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
위에 1줄을 추가하면 쭉 다 1줄에 나오는게 아닌 줄바꿈이 된다고 합니다.
/src/main/resources/logback.xml
- 없으면 생성해주세요.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<!-- log4jdbc-log4j2 -->
<logger name="jdbc.sqlonly" level="DEBUG"/>
<logger name="jdbc.sqltiming" level="INFO"/>
<logger name="jdbc.audit" level="WARN"/>
<logger name="jdbc.resultset" level="ERROR"/>
<logger name="jdbc.resultsettable" level="ERROR"/>
<logger name="jdbc.connection" level="INFO"/>
</configuration>
끝
이제 쿼리를 실행하시면 쿼리가 콘솔에 로그로 찍힙니다.
java파일에서 별도 설정은 필요 없습니다.

쿼리가 잘려서 무슨 쿼리인가 싶겠지만 잘려서 그런 겁니다.😅
잘 찍히지만 조금 더 예쁘게 출력되면 좋겠네요. 오늘은 이만 줄입니다.