Mercurial Hosting > luan
view src/goodjava/logger/DailyRollingFileAppender.java @ 1699:e6750146faa1
no restart on backup
author | Vadim Filimonov <fffilimonov@yandex.ru> |
---|---|
date | Tue, 28 Jun 2022 16:13:37 +0300 |
parents | 8a717f0b7f45 |
children |
line wrap: on
line source
package goodjava.logger; import java.io.FileWriter; import java.io.File; import java.io.IOException; import java.text.DateFormat; import java.util.Date; public final class DailyRollingFileAppender extends WriterAppender { private final DateFormat format; private String fileName; public long deleteAfter = 0; public DailyRollingFileAppender(Layout layout,DateFormat format) { super(layout,null); this.format = format; } public synchronized void append(LoggingEvent event) { String newFileName = format.format(new Date()); if( !newFileName.equals(fileName) ) { fileName = newFileName; if( writer != null ) close(); sweep(); try { writer = new FileWriter(fileName,true); } catch(IOException e) { throw new RuntimeException(e); } } super.append(event); } private void sweep() { if( deleteAfter <= 0 ) return; long expired = System.currentTimeMillis() - deleteAfter; File dir = new File(fileName).getParentFile(); for( File file : dir.listFiles() ) { if( file.lastModified() < expired ) file.delete(); } } }