Last active
September 13, 2016 04:24
-
-
Save ranjitzade/cbd9c2aeeb21529f4266f3d9f1836570 to your computer and use it in GitHub Desktop.
Better logger class.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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