How do you usually Tag log entries? (android)
I usually create an App
class that sits in a different package and contains useful static methods. One of the method is a getTag()
method, this way I can get the TAG everywhere.App
class looks like this:
EDIT: Improved per br mob comment ( Thanks :) )
public class App { public static String getTag() { String tag = ""; final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); for (int i = 0; i < ste.length; i++) { if (ste[i].getMethodName().equals("getTag")) { tag = "("+ste[i + 1].getFileName() + ":" + ste[i + 1].getLineNumber()+")"; } } return tag; }}
And when I want to use it:
Log.i(App.getTag(), "Your message here");
The output of the getTag
method is the name of the caller class (with the package name), and the line number where the getTag
is called from, for easy debuging.
Go to Android Studio -> preference -> Live Templates -> AndroidLog then select Log.d(TAG, String).
In Template text replace
android.util.Log.d(TAG, "$METHOD_NAME$: $content$");
with
android.util.Log.d("$className$", "$METHOD_NAME$: $content$");
Then click Edit variables and enter className() in the Expression column next to the className Name column.
Now when you type the shortcut logd
it will put
Log.d("CurrentClassName", "currentMethodName: ");
You dont need to define a TAG anymore.