Spring/코드로 배우는 스프링 웹 프로젝트
log4jdbc-log4j2 및 로고 레벨 설정
하루인생
2021. 2. 23. 14:42
log4jdbc-log4j2l
og4jdbc-log4j2를 사용하면 sql문의 결과를 좀 더 보기 쉽게 만들어 준다.
1) log4jdbc-log4j2 라이브러리 추가
log4jdbc-log4j2사용을 위해 라이브러리를 추가한다.
<!-- log4jdbc-log4j2 설정 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
2) log4jdbc.log4j2.properties 생성
아래 경로에 log4jdbc.log4j2.properties파일을 생성한다.
new -> other -> General -> Untitled Text File
-> 코드 작성 -> 저장 -> 경로설정(아래 경로) -> 파일명 작성
log4jdbc.log4j2.properties
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
3) root-context.xml 파일 수정
driverClassName와 jdbcUrl 설정을 변경해줘야 한다.
수정 전
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"></property>
<property name="username" value="book_ex2"></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:oracle:thin:@localhost:1521:XE"></property>
<property name="username" value="book_ex2"></property>
<property name="password" value="1234"></property>
</bean>
이전에 만들었던 테스트 코드로 테스트해봤다.
아래와 같이 깔끔하게 출력이 나온다.
로고 레벨 설정
위 사진과 같이 log4jdbc에 의해 상당히 많은 로그가 출력됐다. (jdbc.audit, jdbc.resultset...)
이 로그의 양을 줄이기 위해서 로고 레벨을 설정하면 된다.
log4j.xml파일 수정
src/test/resources/log4j.xml 파일을 수정한다.
log4j.xml파일의 아래 부분에 의해서 info레벨의 로그가 출력된다.
(warn으로 바꾸면 info레벨의 로그가 출력되지 않는다.)
<root>
<priority value="info" />
<appender-ref ref="console" />
</root>
log4jdbc의 특정한 name을 가진 부분의 레벨을 warn으로 변경하면 출력되지 않을 것이다.
<logger name="jdbc.audit">
<level value="warn"/>
</logger>
<logger name="jdbc.resultset">
<level value="warn"/>
</logger>
<logger name="jdbc.connection">
<level value="warn"/>
</logger>
출력이다. 코드가 많이 줄었다.