ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링 부트, Log4jdbc 설정
    Spring Boot 2019. 6. 8. 00:59

    1. pom.xml 파일에 아래와 같이 추가

    <!-- log4jdbc -->
    <dependency>
        <groupId>org.bgee.log4jdbc-log4j2</groupId>
        <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
        <version>1.16</version>
    </dependency>    

    2. application.properties 설정

    spring datasource 설정을 해 둔 부분을 아래와 같이 수정
    ==오라클일 경우==

    spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
    spring.datasource.url=jdbc:log4jdbc:oracle:thin:@localhost:1521:XE
    spring.datasource.username=aaa
    spring.datasource.password=12345


    3. log4jdbc.log4j2.properties 생성

    resources 폴더에 log4jdbc.log4j2.properties 생성

    아래와 같이 설정
    log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
    log4jdbc.dump.sql.maxlinelength=0

    maxlinelength는 sql문을 최대 몇 라인까지 출력
    0으로 하면 제한 없이 실행된 그대로 출력

    기본적으로 log4jdbc가 제공하는 모든 로깅 옵션들이 다 켜진 상태로 로그를 출력한다.
    아래와 같이 설정하여 로그레벨 변경

    4. resources 폴더에 logback.xml을 아래와 같이 생성

    <configuration>
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-3level %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="DEBUG"/>
      <logger name="jdbc.connection" level="OFF"/>
      
      <root level="INFO">
        <appender-ref ref="STDOUT" />
      </root>
      
    </configuration>

    [설명]
    - jdbc.sqlonly : SQL문만 로그, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문
    - jdbc.sqltiming : SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)
    - jdbc.audit : ResultSet 제외한 모든 JDBC 호출 정보. 많은 양의 로그가 생성
    - jdbc.resultset : ResultSet 포함 모든 JDBC 호출 정보 로그, 방대한 양의 로그 생성
    - jdbc.resultsettable : SQL 결과 조회된 데이터의 table을 로그

    이상.

     

Designed by Tistory.