1

在我的 play 2/heroku 应用程序的网络进程中,我有以下代码:

    LOG.info("=======1");
    ConnectionFactory factory = new ConnectionFactory();
    LOG.info("=======2");
    factory.setUri(new URI(CLOUDAMQP_URL));
    LOG.info("=======3");
    Connection connection = factory.newConnection();
    LOG.info("=======4");
    channel = connection.createChannel();
    LOG.info("=======5");

它产生输出:

2013-06-27T15:36:24.549110+00:00 app[web.1]: [info] c.e.g.m.MessagingBase - =======1
2013-06-27T15:36:24.575441+00:00 app[web.1]: [info] play - Application started (Prod)
2013-06-27T15:36:24.597986+00:00 app[web.1]: [info] c.e.g.m.MessagingBase - =======2
2013-06-27T15:36:24.598856+00:00 app[web.1]: [info] c.e.g.m.MessagingBase - =======3

换句话说,在调用 newConnection() 之后,我再也看不到该线程产生的任何输出。自然地,我以为是抛出了异常之类的,但事实上,我已经确认线程继续运行,它只是停止记录。(例如,我可以接收消息并且可以调用 System.exit() )。

到底是怎么回事?我该如何解决?

更新:我忘了提,这是一个 scala 项目,带有一些 java 代码(amqp 的东西是用 java 编写的),记录器是这样创建的:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
....
private static final Logger LOG = LoggerFactory.getLogger(WHATEVER.class);
4

0 回答 0