2014-10-07 39 views
0

對於我的一個Android項目,我需要在12到24小時的時間範圍內收集一些調試數據。寫入logcat不是一個解決方案,因爲它不會保持很長的日誌。有沒有比手動記錄文件更好的方法?用於這種「長時間」記錄的某種API?保持調試輸出12小時?

感謝這個:-)任何暗示

+0

任何日誌記錄API是更可能會只寫一個文件某處 – tyczj 2014-10-07 19:02:19

+0

什麼也不會「保持日誌這麼久」?目前還不清楚問題是什麼:日誌記錄必須在某處編寫*文件,數據庫,端點等。選擇一個並執行。 – 2014-10-07 19:06:56

+0

使用android logcat api完成的日誌條目例如Log.d(..)將不會永久保存,因爲日誌緩衝區是循環的。所以問題是:Android是否提供了使用logcat API或類似方法登錄文件的方法? – 2014-10-07 20:00:43

回答

0

一個非常簡單的解決方案可能被寫入調試日誌文件,對PC中的永久文件。

這將複製日誌的內容,然後退出。

adb logcat -d > logcat.txt 

如果您想要在創建新日誌輸出時繼續寫入文件,請刪除-d,然後將其繼續複製到文件。

adb logcat > logcat.txt 
+0

謝謝,但在此期間我的android手機不會連接到電腦): – 2014-10-07 19:58:53

0

如何編寫自己的日誌類,將使用log4j的文件記錄和android.util.log對本地logcat的一個包裝什麼。

public class Log 
{ 
    private static Logger logger = Logger.getLogger("MAIN_LOGGER"); 

    // info 
    public static void i(String tag, String message) 
    { 
     // logcat 
     android.util.Log.i(tag, message); 

     // log4j 
     logger.info("[" + tag + "] " + message); 
    } 

    // TODO other levels 
} 

log4j.properties,而不是使用常規的登錄類

# [...] 
log4j.logger.MAIN_LOGGER = DEBUG, FILE 

# Define the file appender 
# TODO improve this 
log4j.appender.FILE=org.apache.log4j.FileAppender 
log4j.appender.FILE.File=/sdcard/log.out 

在您的應用程序,使用自定義之一。