我需要捕获通过我的应用程序写入的所有日志。我从 Jetllybean OS 知道,我们只需要读取我们的应用程序日志即可。但是,当我尝试通过应用程序使用 exec 方法使用命令“logcat -d”时,我没有得到任何数据。
请帮助我。
谢谢,
萨拉瓦纳库玛
我需要捕获通过我的应用程序写入的所有日志。我从 Jetllybean OS 知道,我们只需要读取我们的应用程序日志即可。但是,当我尝试通过应用程序使用 exec 方法使用命令“logcat -d”时,我没有得到任何数据。
请帮助我。
谢谢,
萨拉瓦纳库玛
这是我之前玩过的示例,它将在本地存储中生成一个日志文本文件:
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 日志保存到文件中。