https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1

스크린샷 2025-09-15 오후 2.39.49.png

// <https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1>
    implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'

https://github.com/arthurblake/log4jdbc

스크린샷 2025-09-15 오후 2.43.18.png

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <!-- <https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:logging:log4j_2:%EC%84%A4%EC%A0%95_%ED%8C%8C%EC%9D%BC%EC%9D%84_%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94_%EB%B0%A9%EB%B2%95> -->
    <!-- Appenders -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <Pattern>%d %5p [%c] %m%n %r</Pattern>
        </encoder>
    </appender>

    <!-- info부터 적용 table사용시 -->
    <logger name="jdbc.resultsettable" additivity="false">
        <level value="info" />
        <appender-ref ref="console" />
    </logger>

    <!-- sql 로깅 -->
    <!-- SQL문이 preparedStatement일 경우 argument값으로 대체된 SQL문 출력 -->
    <logger name="jdbc.sqlonly" additivity="false">
        <level value="info" />
        <appender-ref ref="console" />
    </logger>

    <!-- resultset제외한 모든 jdbc 호출 정보 출력 -->
    <logger name="jdbc.audit" additivity="false">
        <level value="info" />
        <appender-ref ref="console" />
    </logger>

    <!-- info부터 적용 기본적인 resultset-->
    <!-- resultset을 포함한 모든 jdbc 호출 정보 로그 -->
    <!-- resultsettable 만 사용하기 위해서 로그레벨은 warning시킨다. resultset이 중복됨 -->
    <logger name="jdbc.resultset" additivity="false">
        <level value="info" />
        <appender-ref ref="console" />
    </logger>

    <!-- 수행시간을 찍는다-->
    <logger name="jdbc.sqltiming" additivity="false">
        <level value="info" />
        <appender-ref ref="console" />
    </logger>

    <!-- Root Logger -->
    <root level="off">
        <appender-ref ref="console" />
    </root>
</configuration>

스크린샷 2025-09-15 오후 2.43.24.png

# log4jdbc github
# <https://github.com/arthurblake/log4jdbc>

# log4jdbc-log4j2
# <https://github.com/brunorozendo/log4jdbc-log4j2>

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

log4jdbc.dump.sql.maxlinelength=0

1. 개념

⇒ “내가 DB에 어떤 SQL을 보내고 있는지”를 로그로 확인할 수 있게 해준다.

2. 쓰는 이유

application.yml