我想让我的程序使用以下命令记录给定对象的XML:
Marshaller.marshal(Object jaxbElement, OutputStream os);
目前,我正在使用stdout作为OutputStream。但stdout不会打印在log4j日志文件中。
JAXBContext jc = JAXBContext.newInstance(SomeClass.class);
Marshaller m = jc.createMarshaller();
m.marshal(input, System.out);
如何将此方法的输出重定向到log4j日志文件?
由于
答案 0 :(得分: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);