- 주의
- 해당 설정은 개인 프로젝트의 디렉토리 경로 등에 디펜더시되어 있으며, 서비스 환경에서 로그 출력시 성능이 저하될 수 있으니 개발 환경에서 디버깅 용으로만 사용
- maven 라이브러리 추가
<!-- sql로그를 남기기 위한 라이브러리 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
- jdbc driverClassName을 "net.sf.log4jdbc.sql.jdbcapi.DriverSpy"로 변경
- resources 디렉토리에 "log4jdbc.log4j2.properties" 파일 추가 후 아래 내용 작성
log4jdbc.spylogdelegator.name = net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
#sql문을 최대 몇 라인까지 출력할지 여부: 0은 제한 없음
log4jdbc.dump.sql.maxlinelength=0
- logback 설정에 출력 및 미출력할 로그 어펜더 정의(샘플)
<logger name="jdbc" level="OFF"/>
<logger name="jdbc.audit" level="OFF"/>
<logger name="jdbc.connection" level="OFF"/>
<!-- SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다. -->
<logger name="jdbc.sqltiming" additivity="false">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
</logger>
<!-- SQL 결과 조회된 데이터의 table을 로그로 남긴다 -->
<logger name="jdbc.resultsettable" additivity="false">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
</logger>
<!-- SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다 -->
<!-- <logger name="jdbc.sqlonly" additivity="false"> -->
<!-- <level value="DEBUG" /> -->
<!-- <appender-ref ref="CONSOLE" /> -->
<!-- </logger> -->
<!-- ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남기므로 매우 방대한 양의 로그가 생성된다 -->
<!-- <logger name="jdbc.resultset" additivity="false"> -->
<!-- <level value="DEBUG" /> -->
<!-- <appender-ref ref="CONSOLE" /> -->
<!-- </logger> -->
'JAVA > Spring 일반' 카테고리의 다른 글
spring model mapper 성능 관련 (0) | 2020.08.09 |
---|---|
Spring restTemplate + OkHttp(for http 2 request) (0) | 2019.09.19 |
Spring API 개발시 예외(에러) 처리 방법 메모 (0) | 2019.05.28 |
spring MVC에서 리다이렉트 요청인지 체크하는 메소드 (0) | 2019.02.06 |
Spring boot에서 셧다운 이벤트 발생시 리스너 샘플 (0) | 2019.01.21 |