Java 如何在旋转日志处理程序中保留初始日志文件

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

我使用Java日志记录文件中的内存静态,并使用Java.util.logging.FileHandler实现循环日志。现在我遇到了这样一种情况,我的经理希望保留初始日志文件,并旋转文件的其余部分。是否有任何方法可以保留初始日志文件,但旋转文件的其余部分

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);
    }

}

创建两个文件—一个初始日志文件和另一个旋转日志文件。。当您想读取日志时,可以合并两个文件

,但是日志记录器将在两个日志文件中记录相同的信息并复制数据—浪费空间和处理。否第一个文件仅用于初始日志记录,另一个文件用于旋转日志记录