성장과정(dev)/Spring + Java + JPA

log4j sql로그 가독성 높이기

lowellSunny 2020. 9. 18. 13:39

sql 쿼리문 실행 중 에러가 발생 시 ERROR 로그로 출력하는데 포맷이 정해져있지 않고 개행없이 출력되기 때문에 확인이 힘들다.  검색하던 도중 아주 쉬운방법 발견 !

 

 

기존소스

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
   		<property name="initialSize" value="30" />
   		<property name="maxActive" value="100" />
	</bean>

 

수정 후 소스

	<!-- 쿼리문 출력 포맷 생성 -->
	<bean id="dataSourceSpied" class="org.apache.commons.dbcp.BasicDataSource" 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}" />
   		<property name="initialSize" value="30" />
   		<property name="maxActive" value="100" />
    </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>

 

net.sf.log4jdbc.Log4jdbcProxyDataSource 를 사용하여 포맷터를 추가하였다.

이후에 이쁘게 출력됨

 

 

 

 

출처 addio3305.tistory.com/66