log4jdbc

2023. 12. 28. 11:22JAVA

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파일에서 별도 설정은 필요 없습니다.

 

 

쿼리가 잘려서 무슨 쿼리인가 싶겠지만 잘려서 그런 겁니다.😅

잘 찍히지만 조금 더 예쁘게 출력되면 좋겠네요. 오늘은 이만 줄입니다.

'JAVA' 카테고리의 다른 글

클래스 주석 달기  (0) 2024.03.28
Map을 vo에 맵핑시키기  (0) 2024.01.30
카멜타입 변환기  (0) 2023.12.01
REST API에서 주요 HTTP 메서드  (0) 2023.07.17
이클립스 Git branch local에 불러오기  (0) 2023.07.04