簡體   English   中英

Logcat:使用“ Log”類使輸出顯示完整的程序包名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM