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

如何在所有android操作系统中读取通过我的应用程序编写的logcat,android,android-logcat,Android,Android Logcat,我需要捕获通过我的应用程序写入的所有日志。我从JetlyBean操作系统中了解到,我们只需读取应用程序日志即可读取。但当我尝试通过应用程序使用exec方法使用命令“logcat-d”时,我没有得到任何数据 请帮我做这个 谢谢 Saravanakumar这是我之前玩过的一个示例,它将在本地存储中生成日志文本文件: private static String generateLogcatLogCommond = "logcat -d > /sdcard/IssueReport/log.txt"

我需要捕获通过我的应用程序写入的所有日志。我从JetlyBean操作系统中了解到,我们只需读取应用程序日志即可读取。但当我尝试通过应用程序使用exec方法使用命令“logcat-d”时,我没有得到任何数据

请帮我做这个

谢谢


Saravanakumar

这是我之前玩过的一个示例,它将在本地存储中生成日志文本文件:

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

您想按专业语法执行此操作吗?如果没有,请在命令行“adb logcat-s”“>>logcat.txt”中执行此操作,谢谢。对我想以编程方式捕获日志。将这些日志作为字符串获取并使用它容易吗?命令“/system/bin/sh-”在这里做什么。。我只看到了“logcat-d”命令。这将捕获在Log.d、Log.i或任何特定类型中写入的所有类型的日志。上面的代码所做的是使用“sh”运行“logcat-d”命令,并将其保存为本地文件。这将得到所有的logcat日志。对于您来说,您可以将其更改为“logcat-s”,并将应用程序的所有logcat日志保存到一个文件中。Android操作系统基于linux,在/system/bin中,您将找到所有基于linux的常用工具,如sh,您可以使用它运行其他命令,如logcat或pm等。好的,谢谢您。我试试看。但我希望以字符串形式读取日志。您可以执行简单的文件I/O,并使用readline以字符串形式读取文件的每一行。我想说,这是一个相当多的工作,如果你能描述你想做的细节在原来的职位,我可以建议更好的东西。