Java日志记录 - 有没有办法控制将哪些数据插入到xml中?

时间:2013-02-02 11:24:14

标签: java logging java.util.logging

我正在学习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中插入哪些数据?在某些时候,我只想看到我的字符串消息。

2 个答案:

答案 0 :(得分:4)

您真的需要将日志存储为xml吗?要将它们作为纯文本,请尝试以下方法:

fHandler.setFormatter(new SimpleFormatter());

您也可以implement your own formatter

答案 1 :(得分:1)

不幸的是,XMLFormatter.format()方法的构建几乎是硬编码XML格式。如果您需要另一个,您可以实现自己的格式化程序(类似于XMLFormatter)并明确使用它:

fHandler.setFormatter(new MyXMLFormatter());