我需要捕获通过我的应用程序写入的所有日志。我知道从Jetllybean OS我们只需要我们的应用程序日志。但是当我尝试使用exec方法使用命令“logcat -d”时我没有得到任何数据。
请帮我解决这个问题。
谢谢,
Saravanakumar
答案 0 :(得分:1)
这是我之前玩的例子,它将在本地存储中生成一个日志文本文件:
private static String generateLogcatLogCommond = "logcat -d > /sdcard/IssueReport/log.txt";
public static String generateLogcatLog() throws InterruptedException {
try {
File issueReport = new File(Environment.getExternalStorageDirectory(), "IssueReport");
if (!issueReport.exists())
issueReport.mkdir();
File logFile = new File(issueReport,"log.txt");
logFile.createNewFile();
Process process = Runtime.getRuntime().exec("/system/bin/sh -");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes(generateLogcatLogCommond);
logLocation = "/sdcard/IssueReport/log.txt";
Log.d("Client", logLocation);
} catch (IOException e) {
e.printStackTrace();
}
return logLocation;
}
上面的代码正在使用'sh'来运行'logcat -d'命令并将其作为文件保存在本地。这将获得所有logcat日志。对于您,您可以将其更改为“logcat -s”“',它会将应用程序的所有logcat日志保存到文件中。