스프링 부트 mybatis 환경에서
메소드를 구현해서 실행 시켰을 때, 실행되는 로그를 출력하는 방법을 포스팅하려고 한다.
아래는 사용하려는 Log4jdbc-log4j2 드라이버에 대한 레퍼런스다.
제공하는 기능이 궁금하다면 아래 링크를 타고 읽어보자
https://log4jdbc.brunorozendo.com/
구축하려고 하는 개발 환경은 다음과 같다
Spring Boot
-application.properties (key - value)
-mybatis
Mysql
1.
pom.xml 에 의존성을 추가한다
log4jdbc - log4j2
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.13</version>
</dependency>
2.
[log4jdbc.log4j.properties] 파일을 생성한다.
해당 파일을 생성하는 위치는
[src/main/resources] 경로 밑에 생성한다.
라이브러리에 명시된 디폴트 경로가 위 경로다.
만약 다른 경로에 생성하고 싶다면,
System 프로퍼티 값을 WAS 환경 변수 값을 추가해주거나
log4jdbc 용 리스너를 구현해서 경로를 바꿔줄 수도 있다.
해당 파일을 생성 했으면, 다음과 같이 작성해준다
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
maxlinelength는 최대 출력 라인 수인데, 0이면 제한이 없다는 뜻이다
3.
application.properties 작성 / 수정
만약 데이터베이스 관련 설정을 마쳤다면,
다음과 같이 수정해주면 되고, 설정하지 않았다면 추가해주자
기존 설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://[DB IP]:[DP PORT]/[DB SCHEMA NAME]?useSSL=false&allowMultiQueries=true
변경 설정
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mysql://[DB IP]:[DP PORT]/[DB SCHEMA NAME]?useSSL=false&allowMultiQueries=true
또한, 동일한 파일에서 콘솔에 로깅할 때, 어떤 방식으로 로그를 출력할지
출력 방법을 상세하게 설정할 수 있다.
아래는 내가 필요한 설정을 한 부분이다
logging.level.jdbc=off
logging.level.jdbc.sqlonly=off
logging.level.jdbc.sqltiming=info
logging.level.jdbc.resultsettable=info
logging.level.jdbc.audit=off
logging.level.jdbc.resultset=info
logging.level.jdbc.connection=off
여기까지 프로젝트 세팅이 완료되면,
다음과 같이 콘솔에 쿼리가
출력되는 화면을 볼 수 있다.
'개발 > BACK' 카테고리의 다른 글
[SpringFramework] 스프링 에러 Error occurred during initialization of boot layer 해결 방법 (0) | 2022.12.27 |
---|---|
[SpringFramework] Mybatis 문자 표기법 자동 변환 [ 스네이크 케이스 카멜 케이스 ] (0) | 2022.12.23 |
[형상 관리 툴] bitbucket이란 , 빗버킷 레포지토리 생성 복사 import 하기 (2) | 2022.12.22 |
[Java] 문자열 붙이기/문자열 자르기 + JAVA 8 (0) | 2022.09.28 |
[Java] Optional 클래스 사용법 + NullPointerException (0) | 2022.09.27 |