package com.jasonchen.microlang.debug; import com.jasonchen.microlang.BuildConfig; /** * Wrapper API for sending log output. */ public class AppLogger { protected static final String TAG = "X.Ray"; /** * Null param constructor */ private AppLogger() { } /** * Send a VERBOSE log message. * * @param msg * The message you would like logged. */ public static void v(String msg) { if (BuildConfig.DEBUG) android.util.Log.v(TAG, buildMessage(msg)); } /** * Send a VERBOSE log message and log the exception. * * @param msg * The message you would like logged. * @param thr * An exception to log */ public static void v(String msg, Throwable thr) { if (BuildConfig.DEBUG) android.util.Log.v(TAG, buildMessage(msg), thr); } /** * Send a DEBUG log message. * * @param msg */ public static void d(String msg) { if (BuildConfig.DEBUG) android.util.Log.d(TAG, buildMessage(msg)); } /** * Send a DEBUG log message and log the exception. * * @param msg * The message you would like logged. * @param thr * An exception to log */ public static void d(String msg, Throwable thr) { if (BuildConfig.DEBUG) android.util.Log.d(TAG, buildMessage(msg), thr); } /** * Send an INFO log message. * * @param msg * The message you would like logged. */ public static void i(String msg) { if (BuildConfig.DEBUG) android.util.Log.i(TAG, buildMessage(msg)); } /** * Send a INFO log message and log the exception. * * @param msg * The message you would like logged. * @param thr * An exception to log */ public static void i(String msg, Throwable thr) { if (BuildConfig.DEBUG) android.util.Log.i(TAG, buildMessage(msg), thr); } /** * Send an ERROR log message. * * @param msg * The message you would like logged. */ public static void e(String msg) { if (BuildConfig.DEBUG) android.util.Log.e(TAG, buildMessage(msg)); } /** * Send a WARN log message * * @param msg * The message you would like logged. */ public static void w(String msg) { if (BuildConfig.DEBUG) android.util.Log.w(TAG, buildMessage(msg)); } /** * Send a WARN log message and log the exception. * * @param msg * The message you would like logged. * @param thr * An exception to log */ public static void w(String msg, Throwable thr) { if (BuildConfig.DEBUG) android.util.Log.w(TAG, buildMessage(msg), thr); } /** * Send an empty WARN log message and log the exception. * * @param thr * An exception to log */ public static void w(Throwable thr) { if (BuildConfig.DEBUG) android.util.Log.w(TAG, buildMessage(""), thr); } /** * Send an ERROR log message and log the exception. * * @param msg * The message you would like logged. * @param thr * An exception to log */ public static void e(String msg, Throwable thr) { if (BuildConfig.DEBUG) android.util.Log.e(TAG, buildMessage(msg), thr); } /** * Building Message * * @param msg * The message you would like logged. * @return Message String */ protected static String buildMessage(String msg) { StackTraceElement caller = new Throwable().fillInStackTrace() .getStackTrace()[2]; return new StringBuilder().append(caller.getFileName()).append(".") .append(caller.getMethodName()).append("(): ").append(msg) .toString(); } }