我正在尝试使用log4j
将日志存储到文件中我试图创建一个单独的类
public class MyLogger {
FileHandler fh;
Logger log;
public MyLogger(String className) {
log = Logger.getLogger(className);
try {
String location = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath().replace("%20", " ").replaceFirst("/", "") + "logs.log";
fh = new FileHandler(location);
log.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
} catch (Exception e) {
System.out.println("error in MyLogger class, method getLogger \n stack trace below \n");
e.printStackTrace();
}
}
public void log(Level l, String Message, Object o) {
log.log(l, Message, o);
flushStream();
}
public void log(Level l, String Message) {
log.log(l, Message);
flushStream();
}
private void flushStream() {
fh.flush();
fh.close();
}
}
我每次都在调用这个类,当我需要将一些消息记录到文件中时。 它运行正常,但每次调用时都会覆盖旧的日志数据。 如何使用此代码附加新日志?或者还有其他任何记录方式吗?
答案 0 :(得分:0)
FileHandler还有另一个构造函数可用于明确告诉FileHandler您想要 追加 日志。代码是这样的:
fh = new FileHandler(location, true);
将此构造函数的第二个参数设置为 true 以附加日志。