为什么在大多数Android日志记录代码中使用TAG



我可以看到这是Android开发人员的常见做法。

public final class TasksSample extends ListActivity {
    private static final String TAG = "TasksSample";
    private void method() {
        Log.i(TAG, "message");
    }
}

如果我这样做,会更容易吗?我不需要为每个新类声明 TAG。

public final class TasksSample extends ListActivity {
    private void method() {
        Log.i(getClass().getName(), "message");
    }
}  
与其在特定

活动中放置日志的每个位置写入getClass().getName(),不如始终使用表示活动类名称的TAG

Why use TAG?

运行应用程序时,其中可能有多个 Activity 类。为了区分哪个活动类记录了logcat的信息,我们使用了一个TAG当然表示类的名称。

编写 TAG 的正确方法(我不是说你写的是错误的)是:

private static final String TAG = TasksSample.class.getSimpleName(); // and not "TasksSample"

以前的每个答案都是正确的,但我只想添加一点评论。

private static final String TAG = TasksSample.class.getSimpleName();

private static final String TAG = "TasksSample"

当您使用 proguard 时会使用后者。如您所知,proguard混淆类名,也会影响日志。

每次调用一个函数都会造成费用,每次将某些内容登录到系统时getClass().getName()调用 2 个函数(一个已经很长的过程)。

因此,最好将标签保存为final static String,而不是一遍又一遍地调用相同的函数。

是的,这是一种常见的做法,谷歌支持它进行日志记录和调试。如果您使用getClass().getName()那么每次都必须调用getClass().getName(),因此使用 TAG 是一种更好的方法。

实际上getClass().getName()返回类名,其中 TAG 表示易于理解的类名称/标识。

相关内容

最新更新