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
        • 데이터베이스
        • 운영체제
      • 일상
        • 독서
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바