0

我正在编写小型 XMPP 客户端作为大学项目。

为了生成有效的 XML 标记,我使用标准库中的 XMLStreamWriter。
出于调试目的,我想查看它写入输出流的所有内容,即通过打开的套接字将其发送到世界并将其记录到标准错误。我发现的一种可能的解决方案是创建 Writer 类的子类来构造新的 XMLStreamWriter。

类似于以下代码:

public XMPPWriter(final Writer out) throws XMLStreamException {
    XMLOutputFactory factory = XMLOutputFactory.newInstance();
    factory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true);
    this.writer = factory.createXMLStreamWriter(new Writer() {

        @Override
        public void flush() throws IOException {
            System.err.println("");
            out.flush();
        }

        @Override
        public void write(char[] cbuf, int off, int len) throws IOException {
            System.err.write(String.valueOf(cbuf, off, len).getBytes());
            out.write(cbuf, off, len);
        }

        @Override
        public void close() throws IOException {
            out.close();
        }
    });
}

当然,这是最简单的情况,可以通过多种方式改进此解决方案。但我想知道是否有任何标准的众所周知的方式来进行这种记录?

4

0 回答 0