Skip to content

Instantly share code, notes, and snippets.

@ranjitzade
Last active September 13, 2016 04:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ranjitzade/cbd9c2aeeb21529f4266f3d9f1836570 to your computer and use it in GitHub Desktop.
Save ranjitzade/cbd9c2aeeb21529f4266f3d9f1836570 to your computer and use it in GitHub Desktop.
Better logger class.
/**
* This class is an improvement over Log class provided by Android API.
* Log class by Android API, needs to feed 'TAG' which is generally a class name. In each Log, we
* have to manually add this. This is the reason this custom Log is created. We may add more features
* later but right now this is the motivation for creating a custom Log class.
* <p/>
*/
public class Log {
/**
* TAG
*/
private static final String TAG = Log.class.getSimpleName();
private static String getMethodName(int hierarchy) {
final StackTraceElement[] stackTraceElements = new Throwable().getStackTrace();
if (stackTraceElements != null && stackTraceElements.length > hierarchy) {
StackTraceElement element = stackTraceElements[hierarchy];
return element.getMethodName();
}
return "";
}
private static String getMethodName() {
return getMethodName(3);
}
private static StackTraceElement getLogElement(int hierarchy) {
final StackTraceElement[] stackTraceElements = new Throwable().getStackTrace();
if (stackTraceElements != null && stackTraceElements.length > hierarchy) {
return stackTraceElements[hierarchy];
}
return null;
}
private static String getClassName(StackTraceElement element) {
if (element == null) {
return null;
}
final int index = element.getClassName().lastIndexOf(".");
String tag = "";
if (index > -1) {
tag = element.getClassName().substring(index+1);
}
return tag;
}
public static void debug(String message) {
final StackTraceElement element = getLogElement(2);
if (element == null) {
android.util.Log.e(TAG, "debug : StackTraceElement is NULL");
return;
}
final String TAG = getClassName(element);
android.util.Log.d(TAG, TAG+">"+element.getMethodName()
+ ">" + element.getLineNumber() + "> " + message);
}
public static void d(String TAG, String message) {
android.util.Log.d(TAG, message);
}
/**
* Created only method logging.
*/
public static void d() {
final StackTraceElement element = getLogElement(2);
if (element == null) {
android.util.Log.e(TAG, "d : StackTraceElement is NULL");
return;
}
final String TAG = getClassName(element);
android.util.Log.d(TAG, TAG+">"+element.getMethodName()
+ ">" + element.getLineNumber());
}
public static void d(String message) {
final StackTraceElement element = getLogElement(2);
if (element == null) {
android.util.Log.e(TAG, "d : StackTraceElement is NULL");
return;
}
final String TAG = getClassName(element);
android.util.Log.d(TAG, TAG+">"+element.getMethodName()
+ ">" + element.getLineNumber() + "> " + message);
}
public static void warn(String message) {
final StackTraceElement element = getLogElement(2);
if (element == null) {
android.util.Log.e(TAG, "warn : StackTraceElement is NULL");
return;
}
final String TAG = getClassName(element);
android.util.Log.w(TAG, TAG + ">" + element.getMethodName()
+ ">" + element.getLineNumber() + "> " + message);
}
public static void w(String message) {
final StackTraceElement element = getLogElement(2);
if (element == null) {
android.util.Log.e(TAG, "w : StackTraceElement is NULL");
return;
}
final String TAG = getClassName(element);
android.util.Log.w(TAG, TAG+">"+element.getMethodName()
+ ">" + element.getLineNumber() + "> " + message);
}
public static void w(String TAG, String message) {
android.util.Log.w(TAG, message);
}
public static void error(String message) {
final StackTraceElement element = getLogElement(2);
if (element == null) {
android.util.Log.e(TAG, "error : StackTraceElement is NULL");
return;
}
final String TAG = getClassName(element);
android.util.Log.e(TAG, TAG + ">" + element.getMethodName()
+ ">" + element.getLineNumber() + "> " + message);
}
public static void e(String message) {
final StackTraceElement element = getLogElement(2);
if (element == null) {
android.util.Log.e(TAG, "e : StackTraceElement is NULL");
return;
}
final String TAG = getClassName(element);
android.util.Log.e(TAG, TAG+">"+element.getMethodName()
+ ">" + element.getLineNumber() + "> " + message);
}
public static void e(String TAG, String message) {
android.util.Log.e(TAG, message);
}
public static void info(String message) {
final StackTraceElement element = getLogElement(2);
if (element == null) {
android.util.Log.e(TAG, "info : StackTraceElement is NULL");
return;
}
final String TAG = getClassName(element);
android.util.Log.i(TAG, TAG + ">" + element.getMethodName()
+ ">" + element.getLineNumber() + "> " + message);
}
public static void i(String message) {
final StackTraceElement element = getLogElement(2);
if (element == null) {
android.util.Log.e(TAG, "i : StackTraceElement is NULL");
return;
}
final String TAG = getClassName(element);
android.util.Log.i(TAG, TAG+">"+element.getMethodName()
+ ">" + element.getLineNumber() + "> " + message);
}
public static void i(String TAG, String message) {
android.util.Log.i(TAG, message);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment