Anyframe DataSource Spy를 찾습니다.
Submitted by bomber on 수, 08/13/2008 - 11:30
이전 프로젝트 (Anyframe 2.0.0)에서 다음과 같은 설정을 사용했었습니다.
<bean id="dataSourceSpy" class="net.sf.log4jdbc.DataSourceSpy">
<property name="dataSource" ref="dataSource"/>
</bean>
3.0.1로 옮기면서 해당 부분이 에러가 나서 확인해보니
다음과 같이 수정해줘야 class를 제대로 찾더군요.
<bean id="dataSourceSpy" class="net.sf.log4jdbc.AnyFrameDataSourceSpy">
<property name="dataSource" ref="dataSource"/>
</bean>
그런데 이 정체불명의 class, 어느 jar 파일 안에 들어있는지요?
SVN 상에서도 확인이 되지 않고 package 구조도 anyframe 것이 아닌데다
"AnyFrame" 이란 표기도 좀 이상합니다. (Anyframe이 맞을 것 같습니다만)
anyframe에서 확장한 것이라면 anyframe 패키지를 따르고 SVN에 넣고
해당 bean에 대한 설명도 매뉴얼에 언급되었으면 합니다.


Anyframe DataSource Spy 클래스
Query 서비스를 통해 수행되는 SQL을 로그로 남기기 위해서는 log4jdbc(http://log4jdbc.sourceforge.net/)라는 오픈소스를 활용할 수 있습니다. log4jdbc는 JDBC 호출이나 SQL문에 대해 로그를 남길 수 있는 JDBC Driver로, log4jdbc에서 Driver에 대한 Wrapper는 제공하나, DataSource에 대한 Wrapper를 제공하지 않아 Anyframe에서는 AnyFrameDataSourceSpy과 같은 별도 Wrapper를 제공하고 있습니다.
또한 AnyFrameDataSourceSpy 클래스에서는 내부적으로 ConnectionSpy의 protected로 선언된 메소드에 접근하여 로직을 처리하므로 해당 클래스의 패키지 또한 net.sf.log4jdbc 로 정의된 것입니다.
Anyframe Core 3.0.1을 기준으로 AnyFrameDataSourceSpy 클래스는 3rd party library 중 anyframe.osgi.net.sf.log4jdbc-3.1.1.alpha2.jar 내에 포함되어 있습니다. 소스는 본 사이트를 통해 제공되고 있지 않으나 향후 다운로드하실 수 있도록 하겠습니다.
해당 클래스에 대한 자세한 사용법은 Anyframe Core 매뉴얼 Tech. Service > Query > SQL Logging에 정의되어 있으니 참고하세요.