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

时间:2014-07-29 14:51:31

标签: java java.util.logging

我正在使用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);
    }

}

1 个答案:

答案 0 :(得分:-1)

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