android如何以编程方式在应用程序中仅捕获我的日志条目

android如何以编程方式在应用程序中仅捕获我的日志条目,android,android-logcat,android-log,Android,Android Logcat,Android Log,我想单独获取我在应用程序中输入的日志条目,并将其显示在可滚动的文本视图中。比如说 Log.e(SAMPLE_ACTIVITY_TAG, "App started") 我只需要这些错误日志,不需要其他不需要的日志。是否可以使用logcat命令行工具?我已经尝试了下面的代码,但我得到了完整的应用程序设备日志 Process process = Runtime.getRuntime().exec("logcat -d"); BufferedReader bufferedReade

我想单独获取我在应用程序中输入的日志条目,并将其显示在可滚动的文本视图中。比如说

Log.e(SAMPLE_ACTIVITY_TAG, "App started") 
我只需要这些错误日志,不需要其他不需要的日志。是否可以使用logcat命令行工具?我已经尝试了下面的代码,但我得到了完整的应用程序设备日志

 Process process = Runtime.getRuntime().exec("logcat -d");
        BufferedReader bufferedReader = new BufferedReader(
                new InputStreamReader(process.getInputStream()));

        StringBuilder log=new StringBuilder();
        String line = "";
        while ((line = bufferedReader.readLine()) != null) {
            log.append(line +"\n");
        }
        textView.setText(log.toString());
        textView.setMovementMethod(new ScrollingMovementMethod());

任何建议

请使用以下给定命令创建流程对象:

logcat--pid=pid-d

您需要用应用程序进程id替换PID。可以使用下面的代码行获取进程id

int pid = android.os.Process.myPid();

最终的源代码应该是这样的。请试一试

        int pid = android.os.Process.myPid();
        String command = "logcat --pid="+pid+" -d";
        Process process = Runtime.getRuntime().exec(command);
        BufferedReader bufferedReader = new BufferedReader(
                new InputStreamReader(process.getInputStream()));

        StringBuilder log=new StringBuilder();
        String line = "";
        while ((line = bufferedReader.readLine()) != null) {
            log.append(line +"\n");
        }
        textView.setText(log.toString());
        textView.setMovementMethod(new ScrollingMovementMethod());