Mercurial Hosting > luan
view src/goodjava/logger/DailyRollingFileAppender.java @ 2026:9c10e37c56f6
minor
| author | Franklin Schmidt <fschmidt@gmail.com> | 
|---|---|
| date | Wed, 29 Oct 2025 21:38:14 -0600 | 
| 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(); } } }
