![](/img/trans.png)
[英]Filter application specific logs in adb logcat. (log tag, log message, pid, package name)
[英]Logcat: make output using 'Log' class show full package name
我在同一類的代碼中使用如下語句:
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輸出中獲取完整的軟件包名稱?
公共類應用{
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,“用於初始化FORA的編寫命令”); 使用Log.i(App.getTag(),“編寫命令以初始化FORA”)
它不依賴於消息本身。 如果您直接在Logcat中的同一類中使用Log.i()跟蹤信息日志,則只有第一個顯示類名。 (我不知道為什么會這樣。)Log.w()也是一樣。
如果使用Log.d(),則每次顯示類名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.