在AndroidStudio/Intellijidea中自动生成AndroidLog TAG

Auto-generate Android Log TAG in Android Studio/Intellij idea

在 Intellij Idea 中,当我输入 psfs 然后按 Ctrl+J IDE 时,我明白了对话:

然后当我按 Enter 我得到一个

我知道在哪里可以自定义我自己的输出

但是我不知道如何编写自己的实时模板。

最后我想得到下一个结果:

键入:psfst -> 按 Ctrl+J -> 按 Enter

结果:

public static final String TAG = <currentClassName>.class.getSimpleName();

它会很有帮助,因为我有记录我的 类 的习惯。

我找到了解决办法

1)在plain组中新建一个live模板
2) 在模板文本中:

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

3)定义一个使用范围:

4) 选择一个快捷方式:

最后点击 编辑变量 并将表达式值更改为 className()

单击确定应用确定并使用。

另一种解决方案是不为每个 class 使用默认 TAG,并使用此方法获取 TAG:

public class Utils {
        public static String getTAG(Object o) {
            StackTraceElement[] elements = Thread.currentThread().getStackTrace();

            int position = 0;
            for (int i = 0; i < elements.length; i++) {
                if (elements[i].getFileName().contains(o.getClass().getSimpleName())
                        && !elements[i+1].getFileName().contains(o.getClass().getSimpleName())){
                    position = i;
                    break;
                }
            }

            StackTraceElement element = elements[position];
            String className = element.getFileName().replace(".java", "");
            return "[" + className + "](" + element.getMethodName() + ":" + element.getLineNumber() + ")";
        }
}

来自 MainActivity 的示例调用 - onResume:

Log.v(Utils.getTAG(this), "hello world");

日志输出:

[MainActivity](onResume:79): hello world

在 Android Studio 中已经存在这样的快捷方式 - 当光标在 class 范围内时写入 logt 并输入。

更多信息:

对于那些使用 Android Studio 3Kotlin 的用户,有必要更改 Live Templates 的方式 设置:

编辑器 >> 实时模板 >> Android日志

默认只针对Java

添加 Kotlin 按 "change" 按钮并勾选 Kotlin

然后它会再次工作!


更新时间: 2020

Android工作室:3.6.2

步骤:

  1. 添加
  2. call logtk 随便你怎么调用
  3. 使用此代码作为模板文本
private val TAG = this::class.java.simpleName
  1. 添加说明
  2. 它是否适用于 Kotlin:在我的例子中,我只使用了 Class

2020 年 6 月更新

无需再进行任何设置。 Android Studio 4.0 默认自带此功能。与吐司相同

对于 Kotlin,创建一个实时模板 private val TAG = $CLASS_NAME$::class.java.simpleName 作为模板文本,并在 CLASS_NAME 的设置表达式中作为编辑变量中的 kotlinClassName()。

在 Android studio 中非常简单,只需输入 logt 并按 Tab

它生成:private static final String TAG = "xyzActivity";