Java 如何在旋转日志处理程序中保留初始日志文件
我使用Java日志记录文件中的内存静态,并使用Java.util.logging.FileHandler实现循环日志。现在我遇到了这样一种情况,我的经理希望保留初始日志文件,并旋转文件的其余部分。是否有任何方法可以保留初始日志文件,但旋转文件的其余部分Java 如何在旋转日志处理程序中保留初始日志文件,java,java.util.logging,Java,Java.util.logging,我使用Java日志记录文件中的内存静态,并使用Java.util.logging.FileHandler实现循环日志。现在我遇到了这样一种情况,我的经理希望保留初始日志文件,并旋转文件的其余部分。是否有任何方法可以保留初始日志文件,但旋转文件的其余部分 public class TopProcessor extends Handler { Handler handler; public TopProcessor() throws IOException{ Fil
public class TopProcessor extends Handler {
Handler handler;
public TopProcessor() throws IOException{
File dir = new File(System.getProperty("user.home"), "logs");
dir.mkdirs();
File fileDir = new File(dir,"metrics");
fileDir.mkdirs();
String pattern = "metrics-log-%g.json";
int count = 5;
int limit = 500000;
handler = new TopProcessorHandler(fileDir.getAbsolutePath()+File.separator+pattern, limit, count);
}
class TopProcessorHandler extends FileHandler{
public TopProcessorHandler(String pattern, int limit, int count)
throws IOException {
super(pattern, limit, count);
}
}
private void writeInformationToFile(String information) {
handler.publish(new LogRecord(Level.ALL, information));
}
@Override
public void close() {
handler.close();
}
@Override
public void flush() {
handler.flush();
}
@Override
public void publish(LogRecord record) {
handler.publish(record);
}
}
创建两个文件—一个初始日志文件和另一个旋转日志文件。。当您想读取日志时,可以合并两个文件,但是日志记录器将在两个日志文件中记录相同的信息并复制数据—浪费空间和处理。否第一个文件仅用于初始日志记录,另一个文件用于旋转日志记录