我有一个简单的测试应用程序使用AmqpAppender记录消息。当我运行我的应用程序时,我可以看到基于控制台的消息被写出来了,但是AMQP没有。更让我担心的是,我根本没有看到任何来自appender的输出,以表明它可能有问题。我已经用无效的交换名进行了测试,并且关闭了rabbitmq服务器(针对我的本地框进行测试),但是什么也没有出现。
当System.err找不到附件的主机时,至少应该在它中得到一个错误吗?
我正在使用WebApplicationInitializer对我的for应用程序进行降级,但是我没有为兔子定义任何其他spring,因为目前只有记录器使用它。
这是我的log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<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>我在这里漏掉了什么,导致它甚至没有初始化。
发布于 2014-11-14 23:15:24
如果您确定您正在选择正确的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‘改进’问题。
https://stackoverflow.com/questions/26940042
复制相似问题