[Spring] MyBatis SQL 로그 설정

Gammi·2023년 1월 25일
0

Spring

목록 보기
6/6

📚 MyBatis SQL 로그 설정


📔 pom.xml


  • log4j(log4j2) 라이브러리 추가
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->
<dependency>
	<groupId>org.bgee.log4jdbc-log4j2</groupId>
	<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
	<version>1.16</version>
</dependency>




📔 root-context.xml


  • JDBC(DBCP) 설정이 있는 root-context.xml 파일 수정

  • SQL 로그를 위한 log4jdbc 라이브러리 관련 DBCP 정보 변경(driverClassName, jdbcUrl)



⭐ 기존

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig"> 
	<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property> 
	<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mvc_board5"></property> 
	<property name="username" value="root"></property>
	<property name="password" value="1234"></property> 
</bean>

⭐ 다음과 같이 변경

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
	<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
	<property name="jdbcUrl" value="jdbc:log4jdbc:mysql://localhost:3306/mvc_board5"></property>
	<property name="username" value="root"></property>
	<property name="password" value="1234"></property>
</bean>	




📔 프로퍼티 설정


  • src/main/resources 위치에 log4jdbc.log4j2.properties 파일 생성

  • 파일 내 다음 내용 추가
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

-> 우변의 값은 라이브러리 내의 클래스 지정!




📔 log4j.xml 파일 수정


  1. 2번 라인 DOCTYPE 마지막 "log4j.dtd" 부분 수정

기존

다음과 같이 변경

"http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"
  • 위와 같이 변경하면 오류도 함께 사라짐




  1. 아래 항목 추가

  • jdbc.sqlonly : SQL 쿼리 문장에 대한 로그(전달인자 포함한 문장)
<logger name="jdbc.sqlonly" additivity="false">
	<level value="info" />
	<appender-ref ref="console" />	
</logger>



  • jdbc.sqltiming : SQL 문장 실행에 소용된 시간(밀리초)에 대한 로그
<logger name="jdbc.sqltiming" additivity="false">
	<level value="warn" />
	<appender-ref ref="console" />	
</logger>



  • jdbc.audit : JDBC 호출 정보에 대한로그(ResultSet 제외)
<logger name="jdbc.audit" additivity="false">
	<level value="warn" />
	<appender-ref ref="console" />	
</logger>



  • jdbc.result : ResultSet을 포함한 JDBC 호출 정보에 대한 로그
<logger name="jdbc.result" additivity="false">
	<level value="warn" />
	<appender-ref ref="console" />	
</logger>



  • jdbc.resultsettable : SELECT 실행 결과(데이터 테이블)에 대한 로그
<logger name="jdbc.resultsettable" additivity="false">
	<level value="info" />
	<appender-ref ref="console" />	
</logger>
profile
개발자가 되었어요⭐️

0개의 댓글