package logging; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.Handler; import java.util.logging.LogRecord; public class FileHandler extends Handler { /** * the writer */ private BufferedWriter br; /** * Constructor */ public FileHandler() { try { String time = formateTime(System.currentTimeMillis(), "MM-dd-yyyy_kk-mm-ss"); String filename = "log_" + time + ".log"; br = new BufferedWriter(new FileWriter(new File(filename))); } catch (IOException e) { e.printStackTrace(); } } /* * (non-Javadoc) * * @see java.util.logging.Handler#close() */ @Override public void close() throws SecurityException { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } /* * (non-Javadoc) * * @see java.util.logging.Handler#flush() */ @Override public void flush() { } /* * (non-Javadoc) * * @see java.util.logging.Handler#publish(java.util.logging.LogRecord) */ @Override public void publish(LogRecord rec) { if (getFormatter() == null) setFormatter(new LogFormatter()); String message = getFormatter().format(rec); try { br.append(message); br.flush(); } catch (IOException e) { e.printStackTrace(); } } /** * formats the time using the given format string * * @param time * given time * @param format * given format string * * @return formatted time */ private String formateTime(long time, String format) { SimpleDateFormat f = new SimpleDateFormat(format); return f.format(new Date(time)); } }