簡體   English   中英

在Android中捕獲完整的LOGS

[英]Capture Complete LOGS In Android

我想知道如何從Android設備獲取完整的日志(從我的應用程序初始化到任何崩潰或直到我的應用程序強制關閉)。

我在這里發布的原因是我的應用程序崩潰了一些點,但是當我使用DDMS / Logcat獲取日志時,我的崩潰詳細信息被覆蓋了新日志。


我如何得到崩潰的原因日志..


特別希望捕獲本機代碼崩潰。

I/DEBUG (21835): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000004...


這個adb logcat> crash.txt會保證寫入文件會永遠發生嗎?

我試過這個工作真的很好,不確定它將消耗多少電池。如果您的應用程序處於測試階段您可以使用此..在發布之前,您必須刪除此代碼並發布..

private void writeADBLogs(){
     BufferedWriter bufferedWriter = null;

      try {
         final File file = new File(sdcardPath);
        bufferedWriter = new BufferedWriter(new FileWriter(file,true));
        Process process = Runtime.getRuntime().exec("logcat -d");
        BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream()));

        String oneLine;
          while ((oneLine= bufferedReader.readLine()) != null) {
              bufferedWriter.write(oneLine);
              bufferedWriter.newLine();
          }
    } catch (IOException e) {
        e.printStackTrace();
    } 
}

僅當您的應用程序在清單中具有Debugging = true時(即處於調試模式時),才會保存Android日志。

請參閱關閉日志記錄和調試的 文檔

因此,在這種情況下,如果您想要日志,那么您可以實現Thread.setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler handler)

當您的應用程序因異常而被強制關閉時,將始終調用此方法。

你要做的是將StackTrace保存在附加模式的文件中。

您也可以在調試模式下使用它。

LogCat是一個隊列,因此有些更改會讓您錯過日志(舊的日志將被自動丟棄)。

我建議你實現setDefaultUncaughtExceptionHandler,這樣你就不會錯過任何異常日志。 使用后也要小心刪除文件,否則你的文件會變得非常大。

安裝aLogCat應用程序,然后如果你的應用程序崩潰,啟動它。 使用過濾器(從菜單中)縮小與應用程序相關的數據,最后將其保存或通過郵件發送給您。 但是它不會做太多的魔術 - 如果日志從設備中消失,它將不會向您發送更多的DDMS。 但是,如果您的用戶報告崩潰,則非常有用。

假設您有權訪問該設備:

  1. 將設備掛接到計算機。
  2. 運行DDMS,選擇設備,然后轉到文件資源管理器選項卡。
  3. 找到LogCat中引用的文件,然后單擊頂部附近的“從設備拉取”按鈕。

您應該為郵件使用唯一的Logtags,以便您可以為此過濾貓。 例如,getPackageName()是一個很好的候選者,它返回一個字符串。

在Eclipse中,您可以單擊綠色+為LogCats View添加另一個文件管理器。 在窗口中,您可以在“by log tag”字段中重復標記。

當我從Eclipse啟動我的應用程序時,它似乎會自動出現一個名為“會話過濾器”的新標簽 - 提供相關日志,包括但不僅僅是程序員編寫的日志。

您還可以使用Android Developer Bridge直接從控制台獲取日志。 adb logcat是您正在尋找的命令,根據man,也有適用的相同過濾器設置。 雖然我無法弄清楚語法:)

您可以在您的應用程序中使用acra。它可以幫助您在gdoc帳戶中獲取崩潰報告,您還可以將其配置為收到崩潰報告的電子郵件。一旦您的應用程序上線,它還可以幫助您獲取崩潰報告。 http://code.google.com/p/acra/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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