package com.yoursway.utils.log;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.Date;
import com.yoursway.utils.annotations.Nullable;
public class FileLogger implements Logger {
private final File file;
public FileLogger(@Nullable String filenamePrefix) throws IOException {
String prefix = filenamePrefix == null ? "yoursway-commons" : filenamePrefix;
file = File.createTempFile(prefix + "-", ".log");
FileOutputStream stream = new FileOutputStream(file, true);
PrintWriter writer = new PrintWriter(stream);
writer.println("----");
writer.println(currentTime());
writer.close();
}
private Date currentTime() {
return Calendar.getInstance().getTime();
}
public void add(LogEntry entry) {
FileOutputStream stream;
try {
stream = new FileOutputStream(file, true);
PrintWriter writer = new PrintWriter(stream);
writer.printf("%s :%s: %s\n", currentTime(), entry.type(), entry.message());
writer.close();
} catch (IOException e) {
System.out.printf("%s: %s", entry.type(), entry.message());
System.err.println("Cannot write to log file.");
e.printStackTrace();
}
}
}