2014-11-14 2 views
0

AmqpAppender를 사용하여 메시지를 기록하는 간단한 테스트 앱이 있습니다. 응용 프로그램을 실행할 때 콘솔 기반 메시지가 쓰여지지만 AMQP 메시지는 쓰이지 않는 것을 볼 수 있습니다. 필자가 appender에서 문제가있을 수 있음을 나타내는 결과물이 전혀 보이지 않는다는 점에 관해서는 더 많은 것이있다. 나는 유효하지 않은 교환 이름으로 테스트를했고, rabbitmq 서버를 끄고 (내 로컬 박스를 테스트하면서) 아무것도 표시하지 않았다.amqp-appender가 메시지를받지 못합니다.

appender에 대한 호스트를 찾을 수 없을 때 최소한 System.err에서 오류가 발생하지 않아야합니까?

WebApplicationInitializer를 사용하여 webapp를 inintialize하고 있지만, 현재는 로거에서만 사용하고있는 다른 Spring-beans는 Rabbit에 정의되어 있지 않습니다.

여기에 내가 여기 실종 무엇도 초기화하지이 원인이되는

<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p %c{1} - %m%n" /> 
    </layout> 
</appender> 

<!-- Complete Logger --> 
<appender name="amqp" class="org.springframework.amqp.rabbit.log4j.AmqpAppender"> 
    <param name="host" value="www.yousuck.io" /> 
    <param name="port" value="5672" /> 
    <param name="virtualHost" value="platform" /> 
    <param name="username" value="username" /> 
    <param name="password" value="password" /> 
    <param name="exchangeName" value="testExchange" /> 
    <param name="exchangeType" value="topic" /> 
    <param name="routingKeyPattern" value="test" /> 
    <param name="applicationId" value="ErrorsAppenderTest" /> 
    <param name="declareExchange" value="true" /> 
    <param name="durable" value="true" /> 
    <param name="contentType" value="text/plain" /> 
    <param name="senderPoolSize" value="2" /> 
    <param name="maxSenderRetries" value="30" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p %c{1} - %m%n" /> 
    </layout> 
</appender> 

<root> 
    <!-- <level value="debug" /> --> 
    <priority value="debug" /> 
    <appender-ref ref="amqp" /> 
    <appender-ref ref="console" /> 
</root> 

</log4j:configuration> 

<?xml version="1.0" encoding="UTF-8" ?> 
내의 log4j.xml

입니다.

답변

1

올바른 log4j.xml (-Dlog4j.debug=true 사용)을 선택한다면 오래 기다릴 필요가 없을 것입니다. 재 시도는 기하 급수적으로 중단됩니다. 최대 재시도 횟수가 30이되면 오류가 기록되기 전에 많은 시간이 걸릴 것입니다 (마지막 재시도는 30 초를 기다리고, 다음은 29 등). 재 시도 횟수를 줄이면 다음과 같이 표시됩니다.

log4j:ERROR Could not send log message This is an INFO message with properties after 1 retries 
org.springframework.amqp.AmqpIOException: java.net.UnknownHostException: junk 

(잘못된 호스트 이름이있는 테스트 사례 중 하나)

일부 오류 (예 :이 경우)는 재 시도보다는 치명적으로 간주되어야합니다. 언제든지 JIRA 'Improvement' Issue을 열어보십시오.

+0

나는 어떤 log4j가 사용되는지를 나타내는 log4j jn jboss를 사용하는 것이 잊어 버렸다. – jesmith17

관련 문제