반응형
ibatis에서 mybatis로 모듈을 업그레이드 하고나니, 로그가 개행처리가 안되고 가독성이 떨어진다.
이럴때 log4jdbc-remix 라는 라이브러리를 이용해서 쿼리를 결과를 직관성있게 찍을수 있으며 가독성을 높힐수있다.
로그를 보기좋게 이쁘게 찍어준다는 말이다.
[적용전]
한줄로 찎히는것도 불편하고, 쿼리파라미터 또한 ?로 찍혀서 보기 불편하다
[적용후]
개행처리가 되고 쿼리 파라미터까지 모두 한번에 찍어준다.
1. dependency 추가
아래 내용을 참고하여 dependency를 추가하자.
<dependency>
<groupId>org.lazyluke</groupId>
<artifactId>log4jdbc-remix</artifactId>
<version>0.2.7</version>
</dependency>
2. dataSource 수정
dataSourceSpied를 새로 추가하여 아래와 같이 설정한다.
<bean id="dataSourceSpied" class="org.apache.commons.dbcp.ManagedBasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
>
</bean>
<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
<constructor-arg ref="dataSourceSpied" />
<property name="logFormatter">
<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
<property name="loggingType" value="MULTI_LINE" />
<property name="sqlPrefix" value="[SQL] : "/>
</bean>
</property>
</bean>
3. logback.xml 설정
아래 logabck 설정 예제를 통해 자세히 알아보시기 바랍니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<!-- appender -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${pt_COMMON}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${consoleLoglevel}</level>
</filter>
</appender>
<appender name="MYBATIS_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logBaseDir}/mybatis.%d{yyyy-MM-dd}.log${compType}</fileNamePattern>
<maxHistory>${maxLogHistory}</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<encoder>
<pattern>${pt_MYBATIS}</pattern>
</encoder>
</appender>
<logger name="jdbc.sqlonly" level="DEBUG" additivity="false">
<appender-ref ref="MYBATIS_LOG"/>
</logger>
<logger name="jdbc.sqltiming" level="OFF" additivity="false">
<appender-ref ref="MYBATIS_LOG"/>
</logger>
<logger name="jdbc.audit" level="OFF" additivity="false">
<appender-ref ref="MYBATIS_LOG"/>
</logger>
<logger name="jdbc.resultset" level="OFF" additivity="false">
<appender-ref ref="MYBATIS_LOG"/>
</logger>
<logger name="jdbc.resultsettable" level="OFF" additivity="false">
<appender-ref ref="MYBATIS_LOG"/>
</logger>
<logger name="jdbc.connection" level="OFF" additivity="false">
<appender-ref ref="MYBATIS_LOG"/>
</logger>
</configuration>
'프로그래밍 기타' 카테고리의 다른 글
react 테스트 사이트 (0) | 2023.08.26 |
---|---|
TLS 버전 확인 및 Cipher Suites 조회 툴 다운로드 ( SSL, TLS1.1, TLS1.2, TLS1.3 ) (0) | 2023.08.25 |
maven java.security.InvalidAlgorithmParameterException (0) | 2023.03.20 |
윈도우 maven 초간단 설치 방법 (0) | 2023.03.14 |
gson 보안 취약점 ( CVE-2022-25647 ) (0) | 2023.03.13 |
댓글