在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 3 和 Kotlin 的用户,有必要更改 Live Templates 的方式 设置:
编辑器 >> 实时模板 >> Android日志
默认只针对Java
添加 Kotlin 按 "change" 按钮并勾选 Kotlin
然后它会再次工作!
更新时间: 2020
Android工作室:3.6.2
步骤:
- 添加
- call logtk 随便你怎么调用
- 使用此代码作为模板文本
private val TAG = this::class.java.simpleName
- 添加说明
- 它是否适用于 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";
在 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 3 和 Kotlin 的用户,有必要更改 Live Templates 的方式 设置:
编辑器 >> 实时模板 >> Android日志
默认只针对Java
添加 Kotlin 按 "change" 按钮并勾选 Kotlin
然后它会再次工作!
更新时间: 2020
Android工作室:3.6.2
步骤:
- 添加
- call logtk 随便你怎么调用
- 使用此代码作为模板文本
private val TAG = this::class.java.simpleName
- 添加说明
- 它是否适用于 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";