在xml日志文件中记录xml数据

时间:2010-07-12 15:58:03

标签: java xml xml-serialization logging

我需要记录一些xml数据(当前是JDOM Document),我正在尝试将其输出到标准Java日志。但是,这只会生成带<的日志。和>标签的末尾重新编码为<? ?>等。

虽然可以解析这些信息以获取正确的信息,但它会使日志文件无法读取。任何人都可以为此提供更好的解决方案吗?我已经阅读了很多关于此的帖子,但似乎没有人提出答案 - 但是,如果我错过了答案,请指示我到正确的帖子!

当前代码:用于演示不起作用的简化案例,删除了将文档传输到XML(可以使用XMLOutputter().outputString(document)成功完成)。


try {
    Logger logger = Logger.getLogger("companyname");

    FileHandler fh = new FileHandler("log.log");
    fh.setEncoding("UTF-8");

    logger.addHandler(fh);
    logger.setLevel(Level.ALL);

    String message = "<tag>Some Text</tag>";
    Logger.getLogger("companyname").log(Level.CONFIG, message);
}
catch (IOException e) {
    e.printStackTrace();
}   

1 个答案:

答案 0 :(得分:2)

听起来它正在做正确的事情 - 但您应该使用工具来查看日志条目,而不是尝试直接读取日志文件。任何读取日志文件并期望内容为普通文本内容(并且可能忽略意外标记)的内容都将使用转义文本正常运行,但如果文本未被转义则会中断。

以另一种方式思考问题:假设您记录了一个恰好只包含“&lt;”的字符串 - 你真的希望日志文件成为无效的XML文档吗?