以编程方式读取应用程序的logcat

时间:2015-01-15 05:25:50

标签: android logcat

我已经阅读this article了。但似乎它显示的大多数文本都不在我的应用程序中。如何过滤消息并让它仅显示我的应用程序的日志。换句话说,我想在Android Studio中显示它(仅显示来自我的应用程序的错误日志,显示时间戳等):

我尝试了类似" logcat -d -v time",但是没有用。任何的想法?感谢。

enter image description here

1 个答案:

答案 0 :(得分:16)

尝试使用以下代码来获取应用程序的日志。

public final class MyAppLogReader {

    private static final String TAG = MyAppLogReader.class.getCanonicalName();
    private static final String processId = Integer.toString(android.os.Process
            .myPid());

    public static StringBuilder getLog() {

        StringBuilder builder = new StringBuilder();

        try {
            String[] command = new String[] { "logcat", "-d", "-v", "threadtime" };

            Process process = Runtime.getRuntime().exec(command);

            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(process.getInputStream()));

            String line;
            while ((line = bufferedReader.readLine()) != null) {
                if (line.contains(processId)) {
                    builder.append(line);
                    //Code here
                }
            }
        } catch (IOException ex) {
            Log.e(TAG, "getLog failed", ex);
        }

        return builder;
    }
}

修改

将以下权限添加到您的AndroidManifest文件

<uses-permission android:name="android.permission.READ_LOGS" />