我正在学习java日志记录机制,并编写了以下代码。以下代码将2条消息记录在名为LOGGED.xml
的文件中。
import java.util.logging.Logger;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.io.IOException;
class Tester {
public static void main(String args[]) throws IOException{
Logger logger = Logger.getLogger(Tester.class.getName());
FileHandler fHandler = new FileHandler("LOGGED.xml");
logger.addHandler(fHandler);
logger.log(Level.INFO,"This is an info log message");
logger.log(Level.WARNING,"This is a warning message");
fHandler.close();
}
}
以下是我在 xml 文件中看到的内容:
<log>
<record>
<date>2013-02-02T16:42:48</date>
<millis>1359803568992</millis>
<sequence>0</sequence>
<logger>Tester</logger>
<level>INFO</level>
<class>Tester</class>
<method>main</method>
<thread>1</thread>
<message>This is an info log message</message>
</record>
<record>
<date>2013-02-02T16:42:49</date>
<millis>1359803569031</millis>
<sequence>1</sequence>
<logger>Tester</logger>
<level>WARNING</level>
<class>Tester</class>
<method>main</method>
<thread>1</thread>
<message>This is a warning message</message>
</record>
</log>
有许多我不想要的东西。有什么办法可以控制在xml中插入哪些数据?在某些时候,我只想看到我的字符串消息。
答案 0 :(得分:4)
您真的需要将日志存储为xml吗?要将它们作为纯文本,请尝试以下方法:
fHandler.setFormatter(new SimpleFormatter());
答案 1 :(得分:1)
不幸的是,XMLFormatter.format()
方法的构建几乎是硬编码XML格式。如果您需要另一个,您可以实现自己的格式化程序(类似于XMLFormatter
)并明确使用它:
fHandler.setFormatter(new MyXMLFormatter());