【问题标题】:Java: Redirect Marshaller output to log4jJava:将 Marshaller 输出重定向到 log4j
【发布时间】:2016-06-05 01:24:35
【问题描述】:

我想让我的程序使用以下方法记录给定对象的 XML:

Marshaller.marshal(Object jaxbElement, OutputStream os);

目前,我使用标准输出作为输出流。但是在 log4j 日志文件中没有打印 stdout。

JAXBContext jc = JAXBContext.newInstance(SomeClass.class);
Marshaller m = jc.createMarshaller();
m.marshal(input, System.out);

如何将此方法的输出重定向到 log4j 日志文件?

谢谢

【问题讨论】:

    标签: java xml logging log4j rollingfileappender


    【解决方案1】:

    查看ByteArrayOutputStream 以创建OutputStream 并使用ByteArrayOutputStream#toString() 转换为String

    您修改后的代码:

    OutputStream os = new ByteArrayOutputStream();
    JAXBContext jc = JAXBContext.newInstance(SomeClass.class);
    Marshaller m = jc.createMarshaller();
    m.marshal(input, os);
    String xml = os.toString();
    logger.debug(xml);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-02
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      相关资源
      最近更新 更多