このガイドに従って、フォーマットされた FileHandler を使用してロガー情報をファイルに出力します。
public class TestLog {
public static Logger logger;
static {
try {
boolean append = true;
FileHandler fh = new FileHandler("TestLog.log", append);
fh.setFormatter(new Formatter() {
public String format(LogRecord rec) {
StringBuffer buf = new StringBuffer(1000);
buf.append(new java.util.Date());
buf.append(' ');
buf.append(rec.getLevel());
buf.append(' ');
buf.append(formatMessage(rec));
buf.append('\n');
return buf.toString();
}
});
logger = Logger.getLogger("TestLog");
logger.addHandler(fh);
}
catch (IOException e) {
e.printStackTrace();
}
}
ガイドは、出力が新しい各ロガー メッセージを新しい行に出力することを示しています。
Mon Feb 28 21:30:54 EST 2005 SEVERE my severe message
Mon Feb 28 21:30:54 EST 2005 WARNING my warning message
Mon Feb 28 21:30:54 EST 2005 INFO my info message
ただし、ファイルに新しい行が追加されていないか、それらが StringBuffer にあり、新しい行が作成されて何らかの形で失われています。誰かがここで問題を説明できますか? ありがとう。
私のメソッド/ロガーは静的ではありません。これが問題の原因になっている可能性はありますか?