package org.jrenner.fps; import com.badlogic.gdx.Application; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.utils.GdxRuntimeException; public class Log { private static final String TAG = "LOG"; private static FileHandle logFile; private static final String DEBUG_S = "DEBUG"; private static final String INFO_S = "INFO"; private static final String ERROR_S = "ERROR"; private static boolean serverLogToFile = false; private static final String serverLogFileName = "fps.log"; public static void init() { if (Main.isServer() && serverLogToFile) { logFile = Gdx.files.local(serverLogFileName); } } public static void debug(String msg) { Gdx.app.debug(TAG, msg); if (Gdx.app.getLogLevel() <= DEBUG) writeToFile(DEBUG_S, TAG, msg); } public static void info(String msg) { Gdx.app.log(TAG, msg); if (Gdx.app.getLogLevel() <= INFO) writeToFile(INFO_S, TAG, msg); } public static void error(String msg) { Gdx.app.log(TAG, msg); if (Gdx.app.getLogLevel() <= ERROR) writeToFile(ERROR_S, TAG, msg); } public static void setLevel(int level) { Gdx.app.setLogLevel(level); } private static StringBuilder sb = new StringBuilder(); private static void writeToFile(String level, String tag, String msg) { if (logFile != null) { sb.delete(0, sb.length()); sb.append("[").append(level).append("] ").append(tag).append(": ").append(msg).append("\n"); try { logFile.writeString(sb.toString(), true); } catch (Exception e) { logFile = null; //Log.error(e.toString()); throw new GdxRuntimeException(e); } } } public static final int DEBUG = Application.LOG_DEBUG; public static final int INFO = Application.LOG_INFO; public static final int ERROR = Application.LOG_ERROR; }