我正在尝试生成一个 XML 日志,该日志一个接一个地记录消息,例如
<?xml version="1.0" encoding="UTF-8"?>
<log>
<message>Message 1</message>
<message>Message 2</message>
//Next messages to append here
</log>
我查看了各种解决方案,但似乎没有一个能按我的要求工作。我最接近的是使用以下内容:http ://www.vogella.com/tutorials/Logging/article.html
我已经对其进行了调整以适应我的需要,即
public String format(LogRecord rec) {
StringBuffer buf = new StringBuffer(1000);
buf.append('\n');
buf.append(formatMessage(rec));
buf.append('\n')
return buf.toString() ;
}
public String getHead(Handler h) {
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<log>";
}
public String getTail(Handler h) {
return "</log>";
}
这样做的问题是 getTail 在我的 FileHandler 关闭之前不会被调用,因此它仅在关闭时才有效。
我已经关闭它并尝试使用 append = true 重新打开 FileHandler 以获取下一条消息,但这(不足为奇)附加到日志的末尾。例如
<?xml version="1.0" encoding="UTF-8"?>
<log>
<message>Message 1</message>
</log>
<?xml version="1.0" encoding="UTF-8"?>
<log>
<message>Message 2</message>
</log>
这感觉应该很简单...