是否有一些标准有效的方法来记录Java中写入流的数据
我正在写一个小小的XMPP客户端作为大学项目 要生成有效的XML标记,我使用标准库中的XMLStreamWriter。是否有一些标准有效的方法来记录Java中写入流的数据,java,xml,xmpp,Java,Xml,Xmpp,我正在写一个小小的XMPP客户端作为大学项目 要生成有效的XML标记,我使用标准库中的XMLStreamWriter。 出于调试目的,我希望看到它写入输出流的所有内容,即通过打开的套接字将其发送到world并将其记录到stderr。我发现的一个可能的解决方案是创建Writer类的子类来构造新的XMLStreamWriter 类似于以下代码: public XMPPWriter(final Writer out) throws XMLStreamException { XMLOutputF
出于调试目的,我希望看到它写入输出流的所有内容,即通过打开的套接字将其发送到world并将其记录到stderr。我发现的一个可能的解决方案是创建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();
}
});
}
当然,这是最简单的情况,这个解决方案可以在很多方面得到改进。但我想知道有没有标准的、众所周知的方法来做这样的日志记录?Apache Commons中的TeeOutputStream如何:@DNA谢谢!看起来很合适。但是有更灵活的东西吗?像标准库中的日志记录类之类的日志记录能力会很有帮助。考虑一下日志记录是否记录了你需要的,如果你需要监视TCP/IP字节流,那么就使用一个专用的工具。