Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Creative commons Attribution-NonCommercial license. http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
  
  package base.log;
  
 import java.io.File;
 
 public class DailyRotationHandler extends Handler {
 
 	private static final DateFormat FILE_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
 	private String filename;
 	private FileWriter out;
 	private long nextRotation = 0;
 
 	public DailyRotationHandler(String filename) {
 		super();
 
 		this. = filename;
 	}
 
 	public void publish(LogRecord record) {
 
 		if (!isLoggable(record)) {
 			return;
 		}
 
 		synchronized() {
 			try {
 				if(record.getMillis() > ) {
 					openLog(record.getMillis());
 				}
 
 				String line = getFormatter().format(record);
 				.write(line);
 				if(!line.endsWith("\n") && !line.endsWith("\r")) {
 					.write("\n");
 				}
 				.flush();
 			} catch (IOException e) {
 				..println("Error writing log entry: "+getFormatter().format(record));
 			}
 		}
 	}
 
 	public void flush() {
 		// noop
 	}
 
 	public void close() {
 		if( != null) {
 			try {
 				.close();
 			} catch (IOException e) {
 				// There is no useful action to take if out.close() fails.
 			}
 			 = null;
 		}
 		 = 0;
 	}
 
 	private void openLog(long datethrows IOException {
 		if( != null) {
 			.close();
 			 = null;
 		}
 		Calendar calendar = new GregorianCalendar();
 		calendar.setTimeInMillis(date);
 		calendar.set(., 0);
 		calendar.set(., 0);
 		calendar.set(., 0);
 		calendar.set(., 0);
 		calendar.add(., 0);
 
 		File file = new File(this. + "." + .format(calendar.getTime()));
 		if(file.isDirectory()) {
 			throw new IOException("Expected filename but found a directory: "+);
 		}
 		if(file.exists() && (!file.canWrite() || !file.canRead())) {
 			throw new IOException("Permission problem with log file: "+);
 		}
 
 		File folder = new File(file.getParent());
 		if(folder == null || !folder.canRead() || !folder.canWrite()) {
 			throw new IOException("Permission problem with log file folder: "+file.getParent());
 		}
 		 = new FileWriter(filetrue);
 
		calendar.add(., 1);
	}
New to GrepCode? Check out our FAQ X