我有一個應用程序,我想收集指定級別和標記的LogCat消息。如何在Android應用程序中收集LogCat消息
我可以以某種方式獲得積累的消息在某個點?我不想一個一個收集消息,它應該是他們的總和,就像我用adb讀取實際日誌時一樣。這可能嗎?
我有一個應用程序,我想收集指定級別和標記的LogCat消息。如何在Android應用程序中收集LogCat消息
我可以以某種方式獲得積累的消息在某個點?我不想一個一個收集消息,它應該是他們的總和,就像我用adb讀取實際日誌時一樣。這可能嗎?
試試這個:請注意,在Android的4,你只會看到自己的應用程序被寫入,除非你有root權限的日誌信息。
public static String getLog(Context c) {
try {
Process process = Runtime.getRuntime().exec("logcat -d");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder log = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
log.append("\n");
}
return log.toString();
} catch (IOException e) {
return null;
}
}
爲什麼不把它們寫入文件呢? LogCat實際上是用於實時日誌。有很多高質量的日誌包可以登錄到文件,如果這是你想要做的。
只是作爲一個例子:
How to write logs in text file when using java.util.logging.Logger
請看看我以前的帖子:http://stackoverflow.com/questions/19897628/need-to-handle-uncaught-exception-and-send-log-file –
你的回答似乎是有前途的,特別是* extractLogToFile *。但是,當我在2.3手機上使用以下行:「logcat -d -v MyTAG:v *:S」*時,我總是在* reader.read()*中獲得-1。我應該設置什麼? – Nestor
這可能意味着您在logcat上的過濾將排除所有行。嘗試刪除過濾,看看你是否得到了一些東西。 –