<?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

+ Recent posts