package magic.model; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import magic.utility.MagicFileSystem; import magic.utility.MagicFileSystem.DataPath; import magic.utility.MagicSystem; public class MagicGameLog { private MagicGameLog() {} public static final String LOG_FILE = "game.log"; private static final String gameLog = (System.getProperty("game.log") != null) ? System.getProperty("game.log") : MagicFileSystem.getDataPath(DataPath.LOGS).resolve(LOG_FILE).toString(); private static PrintWriter writer; public static String getLogFileName(){ return gameLog; } public static void initialize() { try { writer = new PrintWriter(gameLog); final StringBuilder sb = new StringBuilder(); sb.append("MAGARENA GAME LOG"); sb.append('\n'); sb.append("CREATED ON ").append(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date())); sb.append('\n'); sb.append("MAGARENA VERSION ").append(MagicSystem.VERSION); sb.append(", JRE ").append(System.getProperty("java.version")); sb.append(", OS ").append(System.getProperty("os.name")); sb.append("_").append(System.getProperty("os.version")); sb.append(" ").append(System.getProperty("os.arch")); sb.append("\n\n"); log(sb.toString()); } catch (FileNotFoundException e) { System.err.println("Unable to create game log"); } } public static void log(final String message) { if (writer != null) { writer.println(message); writer.flush(); } } public static void close() { if (writer != null) { writer.close(); } } }