외장_하드
외장하드
외장_하드
전체 방문자
485,704
오늘
3
어제
862
  • 분류 전체보기 (406)
    • 국내 여행 (197)
      • 수도권 (20)
      • 충청도 (17)
      • 강원도 (32)
      • 전라도 (21)
      • 경상도 (50)
      • 제주도 (57)
      • 나들이 (0)
    • 일상 (40)
      • 휴식 (15)
      • 취업 준비 (19)
      • 월간일상 (3)
      • 군생활 (3)
    • 국외 여행 (31)
      • 일주 준비 (4)
      • 중국 (11)
      • 대만 (5)
      • 태국 (11)
    • 취미 (33)
      • 제품 후기 (25)
      • 지식 (8)
    • 자동차 (21)
      • 뉴 그랜저 XG (15)
      • 올 뉴 K3 (5)
    • IT (84)
      • Spring (18)
      • DataBase (11)
      • AWS (17)
      • GIT | github (5)
      • 기타 (20)
      • 머신러닝 | 딥러닝 (8)
      • Tech | Eng (3)
      • Python (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

  • [아마존 AWS EC2] 서버 인스턴스 삭제하기 / 프리티⋯
    2021.05.01
    [아마존 AWS EC2] 서버 인스턴스 삭제하기 / 프리티⋯
  • [ASUS 노트북] WIFI 무선랜 어댑터 없어짐, 사라짐⋯
    2022.09.24
    [ASUS 노트북] WIFI 무선랜 어댑터 없어짐, 사라짐⋯
  • [후기] 오트리빈 끊기 성공! / 오트리빈 부작용 / 약물⋯
    2020.07.06
    [후기] 오트리빈 끊기 성공! / 오트리빈 부작용 / 약물⋯
  • [안드로이드] 갤럭시 S7 루팅 하는 법 / Odin /⋯
    2020.04.24
    [안드로이드] 갤럭시 S7 루팅 하는 법 /  Odin /⋯
  • [WAS 이슈 해결 #2] MAT 힙 덤프 분석으로 JAV⋯
    2021.04.30
    [WAS 이슈 해결 #2] MAT 힙 덤프 분석으로 JAV⋯

태그

  • 카페
  • 스프링
  • 여행
  • 혼자여행
  • 휴가
  • 뚜벅이
  • 추천
  • 숙소
  • 부산
  • EC2
  • 후기
  • 등산
  • 전라도
  • 가성비
  • 스쿠터
  • 강원도
  • aws
  • 코스
  • 주차장
  • 제주도

최근 댓글

  • 다운은 받았는데 초기화를 해서 프로그램들이 없어서 설치가 ⋯
    컴맹
  • zzzzㅋㅋㅋ
    메롱ㅁ
  • 헐.. 문제 많았군요🥺
    드루이드
  • 구매하신 링크 받을 수 있을까요? 아무리 검색해도 안나오네⋯
    ㅇㅇ
  • 혹시 크래딧 회수되셨나요? 아니면 잘 사용하고 계신가요?
    ㅇㅇ

최근 글

  • [전기자전거] 갤럭시 스마트태그로 자전거 위치추적 하기 /⋯
    2023.03.05
    [전기자전거] 갤럭시 스마트태그로 자전거 위치추적 하기 /⋯
  • [윈도우10] Shell Infrastructure Hos⋯
    2023.03.04
    [윈도우10] Shell Infrastructure Hos⋯
  • [전기자전거] 자전거 도난방지 GPS 설치 셀프 작업하기 ⋯
    2023.03.03
    [전기자전거] 자전거 도난방지 GPS 설치 셀프 작업하기 ⋯
  • [자취생 반지하 생존기] 장판 곰팡이로 모노륨 장판 셀프 ⋯
    2023.03.01
    [자취생 반지하 생존기] 장판 곰팡이로 모노륨 장판 셀프 ⋯
  • [전기자전거] 모토벨로 G8 PAS 2주 서울 시내 출퇴근⋯
    2023.02.23
    [전기자전거] 모토벨로 G8 PAS 2주 서울 시내 출퇴근⋯

티스토리

hELLO · Designed By 정상우.
외장_하드

외장하드

[Spring/eGov] #10 DB 조회 쿼리 및 결과 Console 창에 출력하기 / Log4j2.xml 수정 / 콘솔 로그
IT/Spring

[Spring/eGov] #10 DB 조회 쿼리 및 결과 Console 창에 출력하기 / Log4j2.xml 수정 / 콘솔 로그

2020. 5. 31. 17:13
반응형

 

https://extsdd.tistory.com/114

 

[Spring/eGov] #9 이클립스에서 마리아DB 데이터 Select 과정 디버깅하기 / 디버깅 방법 / Debug / 디버그

https://extsdd.tistory.com/113 [Spring/eGov ] #8 이클립스에서 마리아DB 데이터 조회하기 / MyBatis / 컨트롤러 Controller / 서비스 / DAO / https://extsdd.tistory.com/112 [Spring/eGov ] #7 스프링, 전자..

extsdd.tistory.com

  자 우리가 저번까지 DB에서 데이터를 조회해보고 잘 되는지 확인헀다.

 

 

  하지만 쿼리를 조회하더라도 Console창에 찍히는게 없어서, 실제로 어떤 구문이 실행됐는지, 결과는 나왔는지 알 수가 없어 빠른 분석이 불가능했다.

 

  하지만 Log4j2.xml을 수정해서 쿼리를 조회할때 어떤 쿼리를 조회하는지, 결과는 어떤지 알 수 있게 해보자.

 

1. Log4jdbc-remix 라이브러리 추가

 

 

 

  자 본인 프로젝트에 있는 pom.xml을 열어보자. 저번 시간까지는 그냥 전자정부 프레임워크가 미리 설정해두었던 log4jdbc 라이브러리를 추가해놨었지만, 저 라이브러리 말고 log4j2-remix 라이브러리로 바꿔주자. 위에 나온건 주석처리하고 아래 코드를 그 밑에 추가해주자.

        <dependency>
		    <groupId>org.lazyluke</groupId>
		    <artifactId>log4jdbc-remix</artifactId>
		    <version>0.2.6</version>
		</dependency>

 

 

 

  그럼 위 사진과 같이 변했을 것이다. 기존 lof4jdbc 라이브러리는 주석처리해주고 밑에 새로 log4jbc-remix 라이브러리를 넣어줬당 ㅎㅎ저장을 해주면 라이브러리가 추가된다.

2. log4j2.xml 수정

 

  자 리소스 열기(Ctrl+Shift+R)를 이용해 log4j2.xml 을 열어주자.

 

 

  위와 같은 코드로 작성되어 있을텐데 보면 로그 레벨들이 다 Info위주라 많은 정보들을 안보여주고 있다.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %5p [%c] %m%n" />
        </Console>
    </Appenders>
    <Loggers>
       <Logger name="java.sql" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="egovframework" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
          <!-- log SQL with timing information, post execution -->
        <Logger name="jdbc" level="OFF" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="org.apache.commons.digester" level="ERROR" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
      
         <Logger name="jdbc.sqlonly" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
         <Logger name="jdbc.resultsettable" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="org.springframework" level="INFO" additivity="false">
            <AppenderRef ref="console" />
        </Logger>

        <Logger name="org.springframework.web" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>

        <Root level="DEBUG">
            <AppenderRef ref="console" />
        </Root>
    </Loggers>
</Configuration>

 

  위 코드를 통째로 복붙하고 저장해준다.

 

3. context-datasource.xml 수정

 

  자 리소스 열기(Ctrl+Shift+R)를 이용해 context-datasource.xml을 열어주자.

 

 

  자 데이터 소스가 저렇게 선언되어 있을텐데. 이제 코드를 수정해서 저 dataSource를 가로채서 log4jdbc가 더 상세히 로그를 남길 수 있도록 수정할 것이다.

	<bean id="dataSource_main" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
 		<property name="driverClassName" value="org.mariadb.jdbc.Driver"/>
        <property name="url" value="jdbc:mariadb://127.0.0.1:3306/cp_service_db" />
        <property name="username" value="root"/>
        <property name="password" value="비밀번호"/>
    </bean>
    <bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
		<constructor-arg ref="dataSource_main" />
		<property name="logFormatter">
			<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
				<property name="loggingType" value="MULTI_LINE" />
				<property name="sqlPrefix" value="\n"/>
			</bean>
		</property>
	</bean> 

 

  저 빨간 박스 부분만 드레그해서 위 코드로 바꿔주자.

 

 

  저런식으로 바뀌었을텐데 바뀐걸 보면 기존 dataSource로 id가 할당된 친구를 dataSource_main으로 바꿔줬고, 원래 필요했던 dataSource는 Log4jdbc한테 주고 위에 이름바꿨던 dataSource_main을 참조하는 것을 알 수 있다. 저장해주자!

4. 결과 확인

 

 

  자. 프로젝트를 Clean하고 Debug모드로 서버를 실행하고, 테스트로 http://localhost:8080/reqUrl.do?reqParam=3요청을 해보자.

 

 

 

 

  콘솔 로그를 보면, 1번 박스에 어떤 쿼리를 조회하는지 2번 박스에 실제 ?에 Mapping이 되서 실제로 DB에서 조회되는 쿼리가 먼지, 3번 박스에는 그 쿼리 조회결과는 어떤지가 콘솔창에 찍히게 된다.

 

  만약 요청을 처리할때 조회되는 데이터가 이상하다 싶을때는 어떤 쿼리가 실행되는지, 저 쿼리문을 긁어서 HeidiSql같은 툴로 실제로 DB에서 돌려보고 하면 디버깅 실력이 쑥쑥 늘어날 수 있다.

 

#스프링 #전자정부프레임워크 #데이터베이스 #쿼리 #조회결과 #콘솔 #출력 #Log4j2 #Log4jdbc #결과출력

 

 

 

 

 

 

 

 

 

 

반응형
저작자표시 비영리 변경금지

'IT > Spring' 카테고리의 다른 글

[WAS 이슈 해결 #1] java.lang.OutOfMemoryError: GC overhead limit exceeded 로 인한 Tomcat 서버 다운 / CPU 사용량 폭증  (0) 2021.04.05
[Spring/eGov] 메이븐 빌드 실패 / Failed to execute goal / Perhaps you are running on a JRE rather than a JDK  (3) 2020.06.03
[Spring/eGov] #9 이클립스에서 마리아DB 데이터 Select 과정 디버깅하기 / 디버깅 방법 / Debug / 디버그  (0) 2020.05.31
[Spring/eGov ] #8 이클립스에서 마리아DB 데이터 조회하기 / MyBatis / 컨트롤러 Controller / 서비스 / DAO / 원리 / 구조 / Sql.xml  (8) 2020.05.31
[Spring/eGov ] #7 스프링, 전자정부프레임워크 샘플 예제- 마이바티스(MyBatis)로 마리아 DB 연동하기 / 기본 Sample 프로젝트 완전히 내 프로젝트로 만들기  (8) 2020.05.31
    'IT/Spring' 카테고리의 다른 글
    • [WAS 이슈 해결 #1] java.lang.OutOfMemoryError: GC overhead limit exceeded 로 인한 Tomcat 서버 다운 / CPU 사용량 폭증
    • [Spring/eGov] 메이븐 빌드 실패 / Failed to execute goal / Perhaps you are running on a JRE rather than a JDK
    • [Spring/eGov] #9 이클립스에서 마리아DB 데이터 Select 과정 디버깅하기 / 디버깅 방법 / Debug / 디버그
    • [Spring/eGov ] #8 이클립스에서 마리아DB 데이터 조회하기 / MyBatis / 컨트롤러 Controller / 서비스 / DAO / 원리 / 구조 / Sql.xml
    log4j2, log4jdbc, 결과출력, 데이터베이스, 스프링, 조회결과, 출력, 콘솔, 쿼리, 쿼리문
    외장_하드
    외장_하드
    자동차 / 여행 / 취업 / 일상 / IT / 코딩
    댓글쓰기
    [Spring/eGov] 메이븐 빌드 실패 / Failed to execute goal / Perhaps you are running on a JRE rather than a JDK
    다음 글
    [Spring/eGov] 메이븐 빌드 실패 / Failed to execute goal / Perhaps you are running on a JRE rather than a JDK
    [Spring/eGov] #9 이클립스에서 마리아DB 데이터 Select 과정 디버깅하기 / 디버깅 방법 / Debug / 디버그
    이전 글
    [Spring/eGov] #9 이클립스에서 마리아DB 데이터 Select 과정 디버깅하기 / 디버깅 방법 / Debug / 디버그

    티스토리툴바