0

我需要捕获通过我的应用程序写入的所有日志。我从 Jetllybean OS 知道,我们只需要读取我们的应用程序日志即可。但是,当我尝试通过应用程序使用 exec 方法使用命令“logcat -d”时,我没有得到任何数据。

请帮助我。

谢谢,

萨拉瓦纳库玛

4

1 回答 1

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 日志保存到文件中。

于 2013-04-18T18:14:46.260 回答