You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.0 KiB
Java

package peery.log;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Log {
public static Log log;
public static final boolean silenceDebug = false,
appendEvents = true, appendErrors = false;
public final File eventFile, errorFile;
private BufferedWriter eventWriter, errorWriter;
public Log(String location){
this.eventFile = new File(location+"/eventLog.log");
this.errorFile = new File(location+"/ERROR.log");
try {
if(!this.eventFile.exists()){
this.eventFile.createNewFile();
}
if(!this.errorFile.exists()){
this.errorFile.createNewFile();
}
this.eventWriter = new BufferedWriter(new FileWriter(eventFile, appendEvents));
this.errorWriter = new BufferedWriter(new FileWriter(errorFile, appendErrors));
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}
public static void initLog(String location){
if(Log.log != null){
return;
}
Log.log = new Log(location);
}
public static void log(int logLvl, String message){
Log.log.logs(logLvl, message);
}
public static void log(LogLevel lv, String message){
Log.log.logs(lv.ordinal(), message);
}
@SuppressWarnings("unused")
public void logs(int logLvl, String message){
String prefix = LogLevel.values()[logLvl].toString();
prefix = "["+prefix+"]";
BufferedWriter logWriter;
if(silenceDebug && logLvl == LogLevel.Debug.ordinal()){
return;
}
if(logLvl == LogLevel.Error.ordinal()){
logWriter = this.errorWriter;
}
else{
logWriter = this.eventWriter;
}
String timeStamp = new java.util.Date().toString();
String msg = "["+timeStamp+"]"+prefix+" "+message;
System.out.println(msg);
try {
logWriter.write(msg+"\n");
logWriter.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
Log.initLog("/home/peery/Software_Projects/EclipseWorkspace/Picture Mosaic/resources/");
Log.log(LogLevel.Debug, "Test!");
Log.log(LogLevel.Error, "TEST ERROR");
}
}