package enchcracker; import java.io.PrintWriter; import java.io.StringWriter; import java.text.SimpleDateFormat; import java.util.logging.FileHandler; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; public class Log { private Log() { } private static FileHandler fileHandler = null; static { try { fileHandler = new FileHandler("enchcracker.log"); } catch (Exception e) { System.err.println("Exception creating log file"); e.printStackTrace(); } } private static final Logger LOGGER = getLogger(); public static void cleanupLogging() { fileHandler.close(); } private static Logger getLogger() { Logger logger = Logger.getLogger(""); logger.setUseParentHandlers(false); logger.addHandler(fileHandler); SimpleFormatter formatter = new SimpleFormatter() { private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public String format(LogRecord record) { String thrown; if (record.getThrown() == null) { thrown = ""; } else { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); pw.println(); record.getThrown().printStackTrace(pw); thrown = sw.toString(); } return String.format("[%s] [%s/%s]: %s%s%n", dateFormat.format(record.getMillis()), record.getLoggerName(), record.getLevel(), record.getMessage(), thrown); } }; for (Handler handler : logger.getHandlers()) { handler.setFormatter(formatter); } return logger; } public static void info(String message) { LOGGER.info(message); } public static void warn(String message) { LOGGER.log(Level.WARNING, message); } public static void warn(String message, Throwable thrown) { LOGGER.log(Level.WARNING, message, thrown); } public static void fatal(String message) { LOGGER.log(Level.SEVERE, message); } public static void fatal(String message, Throwable thrown) { LOGGER.log(Level.SEVERE, message, thrown); } }