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();
}
}