【问题标题】:Filter output in logcat by tagname按标记名过滤 logcat 中的输出
【发布时间】:2011-09-04 15:55:31
【问题描述】:

我正在尝试按标签名称过滤来自真实设备(不是模拟器)的 logcat 输出,但我收到的所有消息都是垃圾邮件。我只想从浏览器读取消息,应该是 "browser:" 或 "webkit:" 之类的,但它不起作用...... 这是我得到的:

【问题讨论】:

    标签: android logcat android-logcat


    【解决方案1】:

    使用这个:

    adb logcat -s "TAGNAME"
    

    【讨论】:

    • 谢谢!以上等价于 adb logcat *:s 'tagname'
    • 如何过滤掉一个
    • 我相信过滤掉的唯一方法是按级别。例如,如果某个应用程序正在发送垃圾邮件 Debug,则将 logcat 级别设置为仅显示 Info 和更高级别: logcat *:I
    • 是否可以在上面使用 -f 文件名?比如说,我的方案是通过 TagName 过滤日志并转储到文本文件。
    • Das - "adb logcat TAGNAME:s" 将'消除嘈杂的标签。
    【解决方案2】:

    如果有人像我一样偶然发现,您可以通过在其间添加逗号来过滤多个标签,如下所示:

    adb logcat -s "browser","webkit"
    

    【讨论】:

    • 解释我应该把这段代码放在哪里。我是一只新蜜蜂。请解释
    • @Nepster 在终端中输入。
    • 如果你在 windows 上使用 cygwin,你可以使用 grep...是的,这行得通。
    【解决方案3】:

    另一个选项是为特定标签设置日志级别:

    adb logcat SensorService:S PowerManagerService:S NfcService:S power:I Sensors:E

    如果您只想为某些标签设置日志级别,您可以逐个标签地进行。

    【讨论】:

      【解决方案4】:

      不要依赖 ADB shell,只要把它(adb logcat)当作一个普通的 linux 输出然后 pip 它:

      $ adb shell logcat | grep YouTag
      # just like: 
      $ ps -ef | grep your_proc 
      

      【讨论】:

      • 这是一个糟糕的选择,因为发送了大量不必要的流量,而过滤器显然不起作用。如果一个不相关的进程日志消息恰好包含一些字符串,则会出现。
      • and the filter obviously won't work,你试过了吗?我有,并根据结果粘贴了我的答案。
      • 问题是针对windows,grep不可用
      • 如果你在 windows 上使用 cygwin,你可以使用 grep...是的,这行得通。
      【解决方案5】:

      这是我创建标签的方法:

      private static final String TAG = SomeActivity.class.getSimpleName();
       Log.d(TAG, "some description");
      

      你可以使用 getCannonicalName

      这里我有以下标签过滤器:

      • 任何 (*) 视图 - 详细
      • 任何 (*) 活动 - 详细
      • 任何以 Xyz(*) 开头的标签 - 错误
      • System.out - 静默(因为我在自己的代码中使用登录)

      这是我在终端中输入的内容:

      $  adb logcat *View:V *Activity:V Xyz*:E System.out:S
      

      【讨论】:

        猜你喜欢
        • 2012-12-15
        • 2011-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-19
        • 2012-04-04
        相关资源
        最近更新 更多