LogBack 설정하기(SpringBoot,MySql,mybatis,yml)

이제희·2023년 6월 26일
0

스프링부트

목록 보기
2/3

이런식으로 SQL쿼리의 로그를 출력해준다 디버깅과 함께 사용하면 문제를 더욱 효율적으로 추적할 수 있게 해준다고합니다.

  • application.yml

spring:
  datasource:
    url: jdbc:log4jdbc:mysql://localhost:3306/board
#    driver-class-name: com.mysql.cj.jdbc.Driver
    driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
    username: 유저 이름
    password: 비밀번호
    hikari:
      connection-test-query: SELECT NOW() FROM dual


mybatis:
  config-location: mybatis-config.xml
  type-aliases-package: com.example.board.domain.post
  mapper-locations: mappers/*.xml 
  configuration:
    map-underscore-to-camel-case: true

config-location:
type-aliases-package:
mapper-locations:

이 3부분은 본인의 환경에 맞게 설정해주세요

resouce에 logback-spring.xml 추가

  • logback-spring.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration debug="true">
    
      <!-- Appenders -->
      <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
          <encoder>
              <charset>UTF-8</charset>
              <Pattern>%d %5p [%c] %m%n</Pattern>
          </encoder>
      </appender>
    
      <appender name="console-infolog" class="ch.qos.logback.core.ConsoleAppender">
          <encoder>
              <charset>UTF-8</charset>
              <Pattern>%d %5p %m%n</Pattern>
          </encoder>
      </appender>
    
      <!-- Logger -->
      <logger name="com.example" level="DEBUG" appender-ref="console" />
      <logger name="jdbc.sqlonly" level="INFO" appender-ref="console-infolog" />
      <logger name="jdbc.resultsettable" level="INFO" appender-ref="console-infolog" />
    
      <!-- Root Logger -->
      <root level="off">
          <appender-ref ref="console" />
      </root>
    </configuration>```

logger의 name도 프로젝트에 맞게 수정이 필요하다.

appender는 전달받은 로그를 어디에 출력할지 결정해줍니다.(콘솔, 파일, DB 등)

  • 종속성 추가
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'  /* Log4JDBC */

implementation는 implementation끼리 뭉쳐있어야 한다.

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

대략적인 프로젝트 구조입니다

부족한점 및 로그의 레벨이나 타입같은 경우는 필요할 때 검색해 보는걸로...

profile
뭐라도 남기자

0개의 댓글