import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.Map; import java.util.Date; public class Logger { private static boolean log = false; private static boolean debug = false; /* enumerations for errors, check the map below for message strings */ public enum Status{ ERR_CONN, ERR_HTTP, ERR_REDIRECT, ERR_CLOCK, ERR_DUMP, ERR_READ, ERR_MERGE, ERR_PAUSE, ERR_RESUME, ERR_THREAD, ERR_FILE, ERR_DESTROY, ERR_LOAD, ERR_CLIPBOARD } private static final Map<Status, String> errorMap = new HashMap<Status,String>(); static{ errorMap.put(Status.ERR_CONN, "Error establishing connection."); errorMap.put(Status.ERR_HTTP, "Error response from HTTP."); errorMap.put(Status.ERR_REDIRECT, "Redirection cycle detected."); errorMap.put(Status.ERR_CLOCK, "Error operating with clock."); errorMap.put(Status.ERR_DUMP, "Error dumpting data."); errorMap.put(Status.ERR_READ, "Error reading data."); errorMap.put(Status.ERR_MERGE, "Error merging part files."); errorMap.put(Status.ERR_PAUSE, "Error pausing thread."); errorMap.put(Status.ERR_RESUME, "Error resuming thread."); errorMap.put(Status.ERR_THREAD, "Error in thread operation."); errorMap.put(Status.ERR_FILE, "Error in processing/creating file."); errorMap.put(Status.ERR_DESTROY, "Error in deleting file."); errorMap.put(Status.ERR_LOAD, "Error loading state."); errorMap.put(Status.ERR_CLIPBOARD, "Error accessing clipboard."); } public static void enableLog(){ log = true; } public static void enableLog(boolean flag){ log = flag; } public static void enableDebug(){ debug = true; } public static void enableDebug(boolean flag){ debug = flag; } public static void log(Status status){ if(log){ System.out.print("["+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"] "); System.out.println(status.toString()+ " -> "+errorMap.get(status)); } } public static void log(Status status, String extra){ if(log){ System.out.print("["+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"] "); System.out.println(status.toString()+ " -> "+errorMap.get(status)+" "+extra); } } public static void debug(String msg){ if(debug){ System.out.println("["+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"] "+msg); } } }