首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >amqp-appender不接收消息

amqp-appender不接收消息
EN

Stack Overflow用户
提问于 2014-11-14 22:39:00
回答 1查看 890关注 0票数 0

我有一个简单的测试应用程序使用AmqpAppender记录消息。当我运行我的应用程序时,我可以看到基于控制台的消息被写出来了,但是AMQP没有。更让我担心的是,我根本没有看到任何来自appender的输出,以表明它可能有问题。我已经用无效的交换名进行了测试,并且关闭了rabbitmq服务器(针对我的本地框进行测试),但是什么也没有出现。

当System.err找不到附件的主机时,至少应该在它中得到一个错误吗?

我正在使用WebApplicationInitializer对我的for应用程序进行降级,但是我没有为兔子定义任何其他spring,因为目前只有记录器使用它。

这是我的log4j.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>

代码语言:javascript
复制
<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>

我在这里漏掉了什么,导致它甚至没有初始化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-14 23:15:24

如果您确定您正在选择正确的log4j.xml (使用-Dlog4j.debug=true),那么您可能等待的时间不够长。重试按指数顺序倒转;如果最大重试在30,则需要许多分钟才能记录错误(最后一次重试等待30秒,最后29次重试等等)。减少重试,您应该看到:

代码语言:javascript
复制
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‘改进’问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26940042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档