DB 별 log 다르게 찍는 법
- 작성자 :
- 작성일 :
- 2018-05-08 15:08:04
- 조회수 :
- 2,099
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
logback.xml 이용하여 log 출력 시 접속한 DB 별로 sqlPrefix를 다르게 찍고 싶은데요
아래와 같이 각기 다른 DB 설정이 있다고 가정하에 sqlPrefix 의 value의 이름만 변경 하여
consol log 상의 jdbc.sqlonly 다음으로 sqlPrefix 명명해놓은 value를 사용하고 싶은데요
이게 설정해 놓은 sqlPrefix 의 마지막 값으로 호출 되는 현상이 있는대요..
(1번 DB에 붙어도 2번에 설정한 sqlPrefix 값으로 log가 찍힘)
시나리오상 Spring 올라갈때
Log4jdbcCustomFormatter의 setSqlPrefix 하는 마지막 DB설정값으로 저장 되는게 맞는거 같은데
혹시 여러 DB설정 값에 따른 sqlPrefix value를 다르게 사용하는 방법이 있나요??
context-datasource.xml
1번
<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="SQL111">
</property></property></property></bean>
</property>
</constructor-arg>
</bean>
2번
<bean id="dataSource1" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
<constructor-arg ref="dataSourceSpied1">
<property name="logFormatter">
<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
<property name="loggingType" value="MULTI_LINE">
<property name="sqlPrefix" value="SQL222">
</property></property></property></bean>
</property>
</constructor-arg>
</bean>
아래와 같이 각기 다른 DB 설정이 있다고 가정하에 sqlPrefix 의 value의 이름만 변경 하여
consol log 상의 jdbc.sqlonly 다음으로 sqlPrefix 명명해놓은 value를 사용하고 싶은데요
이게 설정해 놓은 sqlPrefix 의 마지막 값으로 호출 되는 현상이 있는대요..
(1번 DB에 붙어도 2번에 설정한 sqlPrefix 값으로 log가 찍힘)
시나리오상 Spring 올라갈때
Log4jdbcCustomFormatter의 setSqlPrefix 하는 마지막 DB설정값으로 저장 되는게 맞는거 같은데
혹시 여러 DB설정 값에 따른 sqlPrefix value를 다르게 사용하는 방법이 있나요??
context-datasource.xml
1번
<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="SQL111">
</property></property></property></bean>
</property>
</constructor-arg>
</bean>
2번
<bean id="dataSource1" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
<constructor-arg ref="dataSourceSpied1">
<property name="logFormatter">
<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
<property name="loggingType" value="MULTI_LINE">
<property name="sqlPrefix" value="SQL222">
</property></property></property></bean>
</property>
</constructor-arg>
</bean>
A
안녕하세요.
표준프레임워크센터 입니다.
Log4JdbcCustomFormatter가 서로 같은걸 참조것 같은데요.
id가 없다보니 IOC컨테이너가 같은걸로 인식해서 주입이 된듯한데요.
각각 id를 다른이름으로 부여하면 해결 될수도 있지 않을까 합니다.
또는 다음글을 참조하여 새로운 CustomFormatter를 각각
만드는 방법도 있을듯 합니다.
http://offbyone.tistory.com/208
감사합니다.
표준프레임워크센터 입니다.
Log4JdbcCustomFormatter가 서로 같은걸 참조것 같은데요.
id가 없다보니 IOC컨테이너가 같은걸로 인식해서 주입이 된듯한데요.
각각 id를 다른이름으로 부여하면 해결 될수도 있지 않을까 합니다.
또는 다음글을 참조하여 새로운 CustomFormatter를 각각
만드는 방법도 있을듯 합니다.
http://offbyone.tistory.com/208
감사합니다.