我在同一个类中的代码中使用的语句如下所示:
Log.i(TAG, "Writing command to initialize the FORA");
和
Log.i(TAG, "onDescriptorWrite signaled with status " + status);
然而第一个的输出是
Writing command to initialize the FORA
但第二个是
04-11 08:01:13.109 9030-9139/? I/com.lampreynetworks.ahd.transport.btle.b: onDescriptorWrite signaled with status 0
我想在两种情况下都使用包名称输出。我认为这是由TAG决定的,在我的情况下是
private static final String TAG = AndroidBtleHandler.class.getName();
我认为这可能是因为某些陈述属于班级内的一个班级,但事实并非如此。要在logcat输出中获取完整的软件包名称,我需要做什么?
答案 0 :(得分:0)
公共类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;
}
}
而不是Log.i(TAG,&#34;写入命令来初始化FORA&#34;);使用Log.i(App.getTag(),&#34;编写命令初始化FORA&#34;)
答案 1 :(得分:0)
它不依赖于消息本身。如果您在Logcat中使用Log.i()直接跟踪信息日志,则只有第一个显示类名。 (我不知道为什么会这样。)与Log.w()相同。
如果使用Log.d(),则每次都会显示类名。