[portfolio] 스프링 부트와 log4jdbc 연동

박이레·2023년 10월 16일
0

portfolio

목록 보기
8/20

 myBatis를 이용하는 프로젝트라면 log4jdbc는 필수입니다. 어떤 Query가 실행됐는지 console창에서 바로 확인할 수 있습니다.


의존성 추가

build.gradle에 log4jdbc를 추가합니다.

/* Log4jdbc */
    implementation group: 'org.bgee.log4jdbc-log4j2', name: 'log4jdbc-log4j2-jdbc4.1', version: '1.16'

application.properties 수정

application.properties에 기존 driver-class-name과 url을 수정합니다. 이를 통해 실행되는 Query를 추적할 수 있습니다.

spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mariadb://127.0.0.1:3306/portfolio?characterEncoding=UTF-8&serverTimezone=UTC

log4jdbc.log4j2.properties 작성

main > resources > 아래에 log4jdbc.log4j2.properties를 작성합니다.

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0

logback.xml 작성

main > resources > 아래에 logback.xml을 작성합니다. logger name에 있는 level을 조정하여 사용할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds" debug="true">
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="jdbc" level="off"/>
    <logger name="jdbc.sqlonly" level="off"/>
    <logger name="jdbc.sqltiming" level="debug"/>
    <logger name="jdbc.audit" level="off"/>
    <logger name="jdbc.resultset" level="off"/>
    <logger name="jdbc.resultsettable" level="off"/>
    <logger name="jdbc.connection" level="off"/>

    <root level="info">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

결과 확인

이제 Queryr가 실행될 때마다 console에 실행된 Query가 나타납니다.

profile
혜화동 사는 Architect

0개의 댓글