<?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.sqltiming" level="INFO" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Logger name="org.springframework" level="INFO" additivity="false">
<AppenderRef ref="console" />
</Logger>
<Root level="INFO">
<AppenderRef ref="console" />
</Root>
</Loggers>
</Configuration>
java.sql level="DEBUG"로 설정하고 페이지를 새로 고침하면 밑에 처럼 Console에서 SQL 쿼리 관련 로그 추적하는데
유용 INFO는 기본적인 정보만 제공되어서 출력 DEBUG는 상세한 정보를 얻을 수 있음
2024-01-04 19:33:07,119 DEBUG [egovframework.rte.psl.orm.ibatis.SqlMapClientTemplate] Opened SqlMapSession [com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl@485d9863] for iBATIS operation
2024-01-04 19:33:07,131 DEBUG [java.sql.Connection] {conn-100000} Connection
2024-01-04 19:33:07,136 DEBUG [egovframework.rte.psl.orm.ibatis.SqlMapClientTemplate] Obtained JDBC Connection [Transaction-aware proxy for target Connection from DataSource [org.apache.commons.dbcp2.BasicDataSource@71c45428]] for iBATIS operation
2024-01-04 19:33:07,141 DEBUG [java.sql.Connection] {conn-100000} Preparing Statement: SELECT unq, title, name, hits, DATE_FORMAT(rdate, '%Y-%m-%d') as rdate FROM nboard ORDER BY unq DESC;
2024-01-04 19:33:07,645 DEBUG [java.sql.PreparedStatement] {pstm-100001} Executing Statement: SELECT unq, title, name, hits, DATE_FORMAT(rdate, '%Y-%m-%d') as rdate FROM nboard ORDER BY unq DESC;
2024-01-04 19:33:07,645 DEBUG [java.sql.PreparedStatement] {pstm-100001} Parameters: []
2024-01-04 19:33:07,646 DEBUG [java.sql.PreparedStatement] {pstm-100001} Types: []
2024-01-04 19:33:07,667 DEBUG [java.sql.ResultSet] {rset-100002} ResultSet
2024-01-04 19:33:07,683 DEBUG [java.sql.ResultSet] {rset-100002} Header: [unq, title, name, hits, rdate]
2024-01-04 19:33:07,683 DEBUG [java.sql.ResultSet] {rset-100002} Result: [3, test3, 홍길동, 0, 2024-01-04]
2024-01-04 19:33:07,683 DEBUG [java.sql.ResultSet] {rset-100002} Result: [2, test2, 개발, 0, 2024-01-04]
2024-01-04 19:33:07,683 DEBUG [java.sql.ResultSet] {rset-100002} Result: [1, test111, 개발, 0, 2024-01-03]
list = [{unq=3, title=test3, name=홍길동, hits=0, rdate=2024-01-04}, {unq=2, title=test2, name=개발, hits=0, rdate=2024-01-04}, {unq=1, title=test111, name=개발, hits=0, rdate=2024-01-03}]
additivity = Logger 설정에서 사용, 부모 로거에게 전파할지 여부를 결정
true(기본값) 설정 시 상위 로거에도 전달, 로그 메시지가 중복되어 여러 Appenders에 출력 될 수 있음
예 ) com.example.myapp 로거가 있다고 하면 이 경우, 상위 로거는 com.example
com.example의 상위 로거는 com
가장 상위에는 Root로거가 있음
false로 설정 시 로그 이벤트는 오직 해당 로거에 연결된 Appenders에만 전달, 상위 로거로는 전파되지 않음, 중복 로깅 방지
name="java.sql"(패키지) = 데이터베이스 연결, SQL쿼리, 트랜잭션 관리 등
name="egovframework" = 해당 프레임워크 관련 컴포넌트의 작동 방식, 내부 처리 과정 등
name="jdbc.sqltiming" = SQL 쿼리 실행 시간 관련
name="org.springframework" = Spring 내부 작동 방식, 빈 초기화, 스프링 컨텍스트 설정, 요청 처리 과정 등
'전자정부프레임워크' 카테고리의 다른 글
상세보기 + 조회수 (0) | 2024.01.06 |
---|---|
검색 기능 + 페이징 처리 (1) | 2024.01.06 |
행 번호 관련 (0) | 2024.01.06 |
오라클, MySQL 페이징 쿼리문 + iBATIS (0) | 2024.01.05 |
패키지 등록 (1) | 2024.01.02 |