【问题标题】:applying logcat filter programmatically以编程方式应用 logcat 过滤器
【发布时间】:2012-02-15 14:02:54
【问题描述】:

我需要以编程方式使用过滤器转储 logcat。我应用了 adb logcat -s "TAGNAME" 但应用程序只是“挂起”。有一个类似的线程但没有解决方案:Read filtered log cat(Programmatically)?

        try {
            Process process = Runtime.getRuntime().exec("logcat -s XXX");
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(process.getInputStream()));

            StringBuilder log = new StringBuilder();
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                log.append(line);
                log.append(FragmentLog.LINE_SEPARATOR);
            }

            ((TextView) tv).setText(log.toString());

        } catch (IOException e) {
            ((TextView) tv).setText(R.string.default_blank);
        }

【问题讨论】:

    标签: android logcat android-logcat


    【解决方案1】:

    我正在使用另一种方式来让我的应用正常工作。这是代码,以防有人想知道。

        try {               
            Process process = Runtime.getRuntime().exec("logcat -d");
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    
            String line;
    
            Pattern pattern = Pattern.compile("XXX", 0);
    
            while ((line = bufferedReader.readLine()) != null) {
                if (patternu != null
                        && !pattern.matcher(line).find()) {
                    continue;
                }
                log.append(line);
                log.append('\n');
            }
    
        } catch (IOException e) {
    
        }
    

    【讨论】:

    • 我认为 patternu 是一个拼写错误的变量。
    • 执行 bufferedReader.readLine() 时总是得到 null。
    【解决方案2】:

    首先,这个命令将流式传输 logcat 并且不会转储它。因此它永远不会停止运行。此外,如果没有要报告的内容,则 BufferedReader 可能正在等待整行进入,因此您正在阻塞。

    【讨论】:

    • 太棒了。好吧,我需要它来过滤掉 logcat 中的一些消息并将其转储出来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2012-09-23
    • 2015-03-13
    • 2012-03-26
    • 1970-01-01
    相关资源
    最近更新 更多