티스토리 뷰
"eclipse spring Console 창에서 SQL 쿼리 Log를 자세히 출력을 위한 설정"
1. pom.xml 의존성 추가
<!-- SQL 로그 출력 -->
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
2. root-context.xml (또는 dataSource-context.xml) 설정 변경
기존
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName" value="org.mariadb.jdbc.Driver" />
<property name="url" value="jdbc:mariadb://127.0.0.1:3306/디비명" />
<property name="username" value="아이디" />
<property name="password" value="패스워드" />
</bean>
변경
- driverClassName value 변경
- url의 value를 변경
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
<property name="url" value="jdbc:log4jdbc:mariadb://127.0.0.1:3306/디비명" />
<property name="username" value="아이디" />
<property name="password" value="비밀번호" />
</bean>
3. log4jdbc.log4j2.properties 파일 생성 및 설정
- resources 폴더에 log4jdbc.log4j2.properties 파일을 생성하고 아래 코드를 삽입 후 저장
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.drivers=org.mariadb.jdbc.Driver
4. log4j.xml 설정 추가
<!-- SQL 로그 출력을 위한 설정 추가 시작 --> 영역의 내용을 추가
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<!-- Application Loggers -->
<logger name="com.myproject.controller">
<level value="info" />
</logger>
<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="info" />
</logger>
<logger name="org.springframework.beans">
<level value="info" />
</logger>
<logger name="org.springframework.context">
<level value="info" />
</logger>
<logger name="org.springframework.web">
<level value="info" />
</logger>
<!-- SQL 로그 출력을 위한 설정 추가 시작 ----------------------------->
<logger name="jdbc.sqlonly" additivity="false">
<level value="info"/>
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.sqltiming" additivity="false">
<level value="warn" />
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.audit" additivity="false">
<level value="warn"/>
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.resultset" additivity="false">
<level value="warn" />
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.resultsettable" additivity="false">
<level value="info"/>
<appender-ref ref="console"/>
</logger>
<!-- SQL 로그 출력을 위한 설정 추가 끝 ----------------------------->
<!-- Root Logger -->
<root>
<priority value="warn" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
5. Console에 출력된 SQL Log (Parameter와 Select 결과가 보기 쉽게 출력)
logger name 및 Level 설명
logger name | 설명 |
jdbc.sqlonly | SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다 |
jdbc.sqltiming | SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다. |
jdbc.audit | ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남김 모든(많은 양) 로그가 생성 되므로 필요시만 사용, 사용 권장 X |
jdbc.resultset | ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남김 많은 양의 로그가 생성 되므로 필요시만 사용 |
jdbc.resultsettable | SQL 결과 조회된 데이터의 table을 로그로 남김. |
logger level | 설명 |
degug | 디버그를 위한 용도로 일반 정보도 상세하게 출력 |
info | 상태 변경과 같이 일반적인 정보를 출력 |
wran | 경고성 메시지 (처리가능한 문제 또는 향후 에러의 원인이 될 수 있는 경고성 메시지) |
error | 일반적인 에러로 처리가 반드시 필요 |
fatal | 시스템적으로 아주 심각한 에러가 발생, 어플리케이션 작동 불가 |
반응형
'프로그래밍 > jsp·java' 카테고리의 다른 글
eclipse에서 javascript/jquery 자동완성 사용 및 설정 (0) | 2021.03.28 |
---|---|
[JAVA] vo 찍어보기 (0) | 2021.03.27 |
eclipse 단축키 (0) | 2021.02.14 |
eclipse 유용한 플러그인(plugin) 추천 (0) | 2021.02.14 |
Spring(스프링) & mybatis(마이바티스) & mysql 예제로 따라하기 (0) | 2019.09.29 |
댓글