我正在開發一個使用位置服務的應用程序。我需要使用Log.d()
來調試應用程序,但需要將設備一直連接到計算機。這對我來說是不可能的。我將在旅行中測試該應用大約兩個小時。當時我無法將其連接到PC。脫機調試Android應用程序
有沒有什麼辦法可以保存手機中的日誌並在以後檢索,並可以看到日誌數據。
我正在開發一個使用位置服務的應用程序。我需要使用Log.d()
來調試應用程序,但需要將設備一直連接到計算機。這對我來說是不可能的。我將在旅行中測試該應用大約兩個小時。當時我無法將其連接到PC。脫機調試Android應用程序
有沒有什麼辦法可以保存手機中的日誌並在以後檢索,並可以看到日誌數據。
介紹自己Logger
類,爲android.util.Log
類的包裝,這都將重定向輸出到文件和控制檯:
public class Logger {
public static PrintWriter printWriter = null;
private static void init() {
...
// Check if external media is writable
...
if (printWriter == null) {
try {
File dir = new File(Environment.getExternalStorageDirectory() + LOG_DIR);
dir.mkdirs();
printWriter = new PrintWriter(new FileWriter(new File(dir, LOG_FILE), true));
}
catch (IOException e) {
Log.e(Logger.class.getName(), "initExternal() -> IOException", e);
}
}
}
private static synchronized int log(int priority, String tag, String msg) {
int res = Log.println(priority, tag, msg);
init(); // May be called just once, depending on your requirements
printWriter.print(tag + " ");
printWriter.print(msg + "\r\n");
printWriter.flush();
return res;
}
// Duplicates of standard android.util.Log methods:
public static int v(String tag, String msg) {
return log(Log.VERBOSE, tag, msg);
}
public static int v(String tag, String msg, Throwable tr) {
return log(Log.VERBOSE, tag, msg + '\n' + Log.getStackTraceString(tr));
}
public static int d(String tag, String msg) {
return log(Log.DEBUG, tag, msg);
}
public static int d(String tag, String msg, Throwable tr) {
return log(Log.DEBUG, tag, msg + '\n' + Log.getStackTraceString(tr));
}
...
}
有些應用程序會抓取最後幾百行日誌,並通過電子郵件發送到您想要發送到的任何電子郵件。我已經使用日誌收集 https://play.google.com/store/apps/details?id=com.xtralogic.android.logcollector&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS54dHJhbG9naWMuYW5kcm9pZC5sb2djb2xsZWN0b3IiXQ .. ,可以推薦它,確實你需要爲你做的工作:d
似乎只收集最後200日誌.... aLogcat是好多了 – 2012-04-12 07:26:15