2016-08-24 2 views
0

메시지를 processMessage 채널에 넣는 jms-message-driven-channel-adaptor을 사용하여 메시지 대기열에서 메시지를 처리하기 위해 스프링 통합을 사용하고 있습니다. 메시지를 가로 채고 메시지를 로그 파일에 기록하도록 wire-tap을 구성했습니다.loggin-channel-adapter 용 log4j 구성

페이로드 만 로그 파일에 기록하려고하지만 응용 프로그램을 시작할 때 모든 응용 프로그램 수준 로그도 페이로드와 함께 로그 파일에 기록됩니다.

다음은 스프링 구성과 log4j 구성에 대한 자세한 내용입니다.

봄 구성 :

<int-jms:message-driven-channel-adapter 
    channel="processMessage" destination-name="MyTest.Queue"/> 

<int:channel id="processMessage"> 
    <int:interceptors> 
     <int:wire-tap channel="logger"></int:wire-tap> 
    </int:interceptors> 
</int:channel> 

<int:logging-channel-adapter channel="logger" logger-name="myLogger" 
    level="INFO" log-full-message="true"> 
</int:logging-channel-adapter> 

의 log4j 구성 : 내가 잘못 가고 어디

log4j.rootLogger = INFO, myLogger 
log4j.appender.myLogger=org.apache.log4j.FileAppender 
log4j.appender.myLogger.File=/app/logs/jms.log 
log4j.appender.myLogger.layout=org.apache.log4j.PatternLayout 
log4j.appender.myLogger.layout.conversionPattern=%m%n 

은 알려 주시기 바랍니다.

답변

0

다른 파일로 이동하려면 rootLogger에 appender를 사용하도록 구성하면 안됩니다. rootLogger는 다른 appender로 가야합니다.

또한, 당신은 (myAppender에 펜더 이름을 변경) 로거

log4j.category.myLogger=INFO, myAppender 

에 대한 범주가 필요합니다.

편집

난 그냥이 테스트 예상대로 작동 ...

<int:logging-channel-adapter id="loggingChannel" log-full-message="true" logger-name="tapInbound" 
    level="INFO" /> 

.

log4j.rootLogger = INFO, stdout 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.conversionPattern=%m%n 

log4j.category.tapInbound=INFO, myAppender 

log4j.appender.myAppender=org.apache.log4j.FileAppender 
log4j.appender.myAppender.File=/tmp/jms.log 
log4j.appender.myAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.myAppender.layout.conversionPattern=%m%n 
+0

감사합니다. Gary. 그러나' zilcuanu

+0

예상대로 작동하는 예제를 보려면 편집을 참조하십시오. –

0

이 같은의 log4j 설정이 있기 때문에 :

log4j.rootLogger = INFO, myLogger 

따라서 모든 범주가 ​​사용자 정의 펜더를 사용합니다.

그들에게 어쩌면 stdout :

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d %p [%t] [%c] - %m%n 

?