我正在尋找一種方法來將所有logcat輸出(按標記篩選)保存在手機內存/ SD卡中。 所以,即使有人在使用應用程序,會來找我說它崩潰,或者它不能按預期工作,我可以查看日誌。我目前使用RemoteLogs,但他們不處理標準的logcat輸出。SDCard上的Logcat輸出
回答
我認爲這不是直接可能的。你可以這樣做是爲了覆蓋標準Log.x()
方法,這樣
class MyLog {
boolean sdLog = false;
public void d(String arg1, String arg2) {
if (sdLog) {
someLogFile.append(arg1).append(":").append(arg2);
}
else {
Log.d(arg1,arg2);
}
}
}
,然後在你的代碼替換所有調用Log.d()
通過調用MyLog.d()
什麼。用戶然後可以例如在首選項中選擇登錄到SD卡或使用標準機制。
通常,所有記錄到SD卡的東西都不是由Android選擇的(afair),因爲這意味着大量寫入卡,這會減少它的使用壽命。
很好,這是我需要的,順便說一下,我可以製作靜態緩衝區以減少對SDCard的寫入。另外,我認爲可以在應用程序崩潰時編寫緩衝區(遠程日誌,處理應用程序崩潰,因此可能)。在下一個應用程序中,我將使用此解決方案,用於測試/調試目的 – Drake29a
您可以簡單地轉儲logcat並通過執行諸如sh -c logcat -d -v time > /sdcard/logcat.txt
之類的操作將其保存到文件中。事實上,Market/Play商店上有應用程序可以做到這一點,並允許您通過電子郵件等共享logcat。指示您的用戶使用其中一個應用程序(例如LogCollector)發送可能是個好主意你的日誌。更好的主意是使用ACRA或BugSense監視應用程序崩潰以及環境信息(Android版本,屏幕大小等)。請記住,由於Jelly Bean(4.1)只能在設備上運行此應用程序(通過adb運行時具有更多權限並可以獲取所有日誌)時才能訪問您自己的logcat輸出(即從正在執行的應用程序包)像之前一樣)。
另一種想法是不使用Log.x()
,而是寫入您自己的日誌文件。最近的ACRA版本能夠發送這個文件的內容以及崩潰報告。
- 1. 過濾logcat輸出
- 2. 沒有logcat的輸出
- 3. 如何將整個Logcat寫入sdcard?
- 4. 如何將所有過濾器和標籤的logcat輸出存儲在SdCard上的文件中?
- 5. LogCat輸出調試幫助
- 6. 從adb logcat捕獲輸出
- 7. AVD沒有LogCat輸出?
- 8. Logcat輸出爲文本塊
- 9. 流的Android的logcat輸出到SD卡
- 10. SDCard上的DocumentFile
- 11. 將App的Logcat輸出發送到EmailAdress
- 12. 如何篩選ACRA中的logcat輸出?
- 13. Android,LogCat中的本機錯誤輸出
- 14. 安卓:閱讀logcat的輸出
- 15. 輸出()不會顯示在logcat的
- 16. 遊標中的輸出值爲logcat? - Android
- 17. 使ConsoleHandler輸出出現在logcat輸出中
- 18. 如何啓用華爲MediaPad M3上的logcat輸出
- 19. 在Eclipse中沒有logcat輸出
- 20. 瞭解logcat輸出時寫入文件
- 21. 過濾android logcat輸出多個標記
- 22. 在內核端加密logcat輸出
- 23. android LogCat只輸出最後一行
- 24. 如何輸出LogCat到控制檯?
- 25. 從logcat輸出中禁用WebView消息
- 26. 如何重定向logcat輸出?
- 27. 將對象輸出到Logcat控制檯
- 28. 將Logcat輸出保存到文件
- 29. 在發佈apk中禁用LogCat輸出?
- 30. 在Android中禁用本機logcat輸出
這是一個好主意:p – keyser
可能的重複[如何將我的日誌輸出從logcat重定向到Android設備上的SD卡?](http://stackoverflow.com/questions/3359692/how-to- redirect-my-log-output-from-logcat-to-the-sd-card-on-an-android-device) – Narkha