How do you usually Tag log entries? (android) How do you usually Tag log entries? (android) android android

How do you usually Tag log entries? (android)


I use a TAG, but I initialise it like this:

private static final String TAG = MyActivity.class.getName();

This way when I refactor my code the tag will also change accordingly.


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$");

Image of Android menu

Then click Edit variables and enter className() in the Expression column next to the className Name column. image of Android menu 2

Now when you type the shortcut logd it will put

Log.d("CurrentClassName", "currentMethodName: ");

You dont need to define a TAG anymore.