如何在所有android os中读取通过我的应用程序编写的logcat

时间:2013-04-18 18:02:29

标签: android android-logcat

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

请帮我解决这个问题。

谢谢,

Saravanakumar

1 个答案:

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