另一种解决方案是不为每个类使用默认 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