首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从jetty到stderr的神秘控制台输出?

从jetty到stderr的神秘控制台输出?
EN

Stack Overflow用户
提问于 2010-09-16 03:19:08
回答 1查看 1.9K关注 0票数 1

当运行我的嵌入式jetty web应用程序启动程序时,我看到stderr的以下输出。在将构建迁移到maven-2之后,我才开始注意到这一点。以前有没有人见过这个?

代码语言:javascript
复制
IDLE SCEP@988057 [d=false,io=1,w=true,rb=false,wb=false],NOT_HANDSHAKING, in/out=0/0 Status = OK HandshakeStatus = NOT_HANDSHAKING
bytesConsumed = 5469 bytesProduced = 5509

它偶尔似乎在随机的时间重复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-24 01:32:51

这似乎来自jetty NIO支持-- jetty似乎认为在关闭空闲连接时应该登录到stderr。

代码语言:javascript
复制
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.checkIdleTimestamp(SelectChannelEndPoint.java:231)
at org.eclipse.jetty.io.nio.SelectorManager$SelectSet$2.run(SelectorManager.java:768)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)

对于那些有类似问题的人,我用模拟输出流覆盖了System.err:

代码语言:javascript
复制
public class DebugOutputStream extends OutputStream {
    private Logger s_logger = LoggerFactory.getLogger(DebugOutputStream.class);

    private final OutputStream m_realStream;
    private ByteArrayOutputStream baos = new ByteArrayOutputStream();
    private Pattern m_searchFor;

    public DebugOutputStream(OutputStream realStream, String regex) {
        m_realStream = realStream;
        m_searchFor = Pattern.compile(regex);
    }

    public void write(int b) throws IOException {
        baos.write(b);
        if (m_searchFor.matcher(baos.toString()).matches()) {
            s_logger.info("unwanted output detected", new RuntimeException());
        }
        if (b == '\n') baos.reset();
        m_realStream.write(b);
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3721026

复制
相关文章

相似问题

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