4. Logback 설정

2020. 9. 27. 16:50·사이드 프로젝트/게시판

2020/09/27 - [사이드 프로젝트] - 3. MyBatis 설정

 

3. MyBatis 설정

2020/09/27 - [사이드 프로젝트] - 2. Spring boot + MSSQL 2020/09/12 - [사이드 프로젝트/게시판] - 1. Spring boot 프로젝트 생성 1. Spring boot 프로젝트 생성 * 이클립스 마켓플레이스에서 spring을 설치 또..

dev-yujji.tistory.com

 

아마아마아마아마 마지막 설정이지 않을까 싶다!

만일 본인이 코딩을 하다가 테스트를 하는 도중 원하는 결과값이 나오지 않았다.

그러면 쿼리가 어떻게 돌아간 거지?라는 생각이 든다.

 

Logback은 내가 작성한 쿼리가 테스트 중 날아가게 되면 설정한 값에 따라 Console에 어떤 Parameter가 매칭이 되어 날아갔는지 보여주게 된다.

또한, 쿼리의 속도와 해당 쿼리에 대한 결과도 확인할 수 있다.

 

없을 때는 그냥 이클립스에서 BreakPoint 찍고 확인했는데 막상 사용을 하고 나니 없으면 매우 매우 매우 불편한 기능이 되었다.

 

그래서... Logback을 설정해보자.

 

 

설정


pom.xml 파일을 열고 Logback Dependency를 추가한다. 

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

 

다음 'application.properties'에 들어가서 DB 연동을 위해 DB 정보를 입력했던 부분을 다음과 같이 수정한다.

spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:sqlserver://localhost:1433;databaseName=데이터베이스이름

'driver-classs-name'의 값이 바뀌었고 'url'에 'log4jdbc'가 추가된 점이 변경된다.

 

 

다음으로 두 개의 파일을 생성할 건데 파일은 'resources/' 경로에 넣어준다. 

 

 

1. log4jdbc.log4j2.properties

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

'log4jdbc.dump.sql.maxlinelength=0' 부분은 복잡하고 어려운 쿼리를 한 줄로 보면 가독성이 떨어지기 때문에 줄 바꿈을 적용시켜주는 값이기 때문에 설정해준다.

 

 

2. log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
	<Loggers>
		<logger name="jdbc.sqlonly" level="debug" />
		<logger name="jdbc.sqltiming" level="info" />
		<logger name="jdbc.audit" level="off" />
		<logger name="jdbc.resultset" level="off" />
		<logger name="jdbc.resultsettable" level="error" />
		<logger name="jdbc.connection" level="info" />
	</Loggers>
</Configuration>

설정값이 여러 가지가 있지만 나는 간단하게 이렇게만 설정을 하였다.

 

 

 

테스트


1. JoinMapper.xml

<select id="test" resultType="Users">
	SELECT	*
	FROM 	USERS
</select>

다음과 같은 간단한 Select 쿼리를 만들고 Controller에서 이 쿼리가 실행이 되도록 로직을 짜준 후 실행한다.

 

 

Logback 설정이 잘 되었다면 이클립스 Console에서 해당 쿼리가 실행이 된 후

jdbc.sqltiming : SELECT	*
		FROM 	USERS

Console에서 위와 같이 나오는 것을 확인할 수 있다.

'사이드 프로젝트 > 게시판' 카테고리의 다른 글

5. Controller에서 alert 띄우기, 화면 이동하기  (2) 2020.10.05
3. MyBatis 설정  (0) 2020.09.27
2. Spring boot + MSSQL  (1) 2020.09.27
1. Spring boot 프로젝트 생성  (0) 2020.09.12
'사이드 프로젝트/게시판' 카테고리의 다른 글
  • 5. Controller에서 alert 띄우기, 화면 이동하기
  • 3. MyBatis 설정
  • 2. Spring boot + MSSQL
  • 1. Spring boot 프로젝트 생성
나는 유찌
나는 유찌
쩌리쨩
  • 나는 유찌
    유찌 개발 일기
    나는 유찌
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 사이드 프로젝트
        • 게시판
        • 블로그(Spring boot + React.js ..
      • 데이터베이스
        • SQLD
      • 이슈 해결
      • Front
        • Javascript
        • Vue.js
        • HTML+CSS
      • Backend
        • Spring
        • ORM
        • JAVA
      • 공부
        • HTTP
        • OOP
        • 이것저것
        • 코딩테스트 | 알고리즘
      • Computer Science
        • Computer architecture
        • 데이터베이스
        • 운영체제
      • 일상
        • 독서
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    추리소설
    access token
    히가시노 게이고
    Spring Boot
    jwt
    웹 개발
    Spring boot에서 JWT 구현
    jwt 로그인 구현
    phantom read
    Spring Security AccessDecisionManager
    LeetCode
    spring
    Access token 재발급
    mysql 격리수준
    spring 격리수준
    mssql
    redis 분산락
    DIRTY READ
    Kotlin AntPathMatcher
    Kotlin AccessDecisionManager
    한국소설
    권한 scope 처리
    JWT이란?
    AntPathMatcher
    refresh token
    Access Token Refresh Token
    AccessDecisionVoter
    role scope
    독서
    pessimisticlock
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
나는 유찌
4. Logback 설정
상단으로

티스토리툴바