デフォルトのコード:
class Tester {
public static void main(String args[]) throws IOException{
Logger logger = Logger.getLogger(Tester.class.getName());
FileHandler fHandler = new FileHandler("LOGGED.xml",true);
logger.addHandler(fHandler);
logger.log(Level.INFO,"This is an info log message");
fHandler.close();
}
}
xml
次のタイプの を生成します。
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2013-02-03T08:16:37</date>
<millis>1359859597763</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>
</log>
しかし、上記で作成したxmlに次のコードを追加しようとすると、次のようになります。
class Tester_1{
public static void main(String args[]) {
try {
Logger logger = Logger.getLogger(Tester_1.class.getName());
FileHandler fHandler = new FileHandler("LOGGED.xml",true);
logger.addHandler(fHandler);
logger.log(Level.INFO,"This is a custom message from my own formatter !");
fHandler.close();
}catch(Exception exc) {
exc.printStackTrace();
}
}
}
以前に生成されたxmlに以下を追加します。
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
<date>2013-02-03T08:16:51</date>
<millis>1359859611306</millis>
<sequence>0</sequence>
<logger>Tester_1</logger>
<level>INFO</level>
<class>Tester_1</class>
<method>main</method>
<thread>1</thread>
<message>This is a custom message from my own formatter !</message>
</record>
</log>
このxmlをブラウザで開こうとすると、次のエラーが表示されます。
This page contains the following errors:
error on line 27 at column 6: XML declaration allowed only at the start of the document
ステートメントを回避するにはどうすればよいですか:
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
二度 ?xmlの末尾にタグを追加しただけのxmlが必要です。log