1

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

4

2 回答 2

4

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

fHandler.setFormatter(new SimpleFormatter());

您也可以实现自己的格式化程序

于 2013-02-02T11:32:47.970 回答
1

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

fHandler.setFormatter(new MyXMLFormatter());
于 2013-02-02T11:37:35.930 回答