怎么用eclipse还有logcat命令的过滤log信息

如题所述

1. 只显示需要的输出,白名单
最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配。简单的匹配一行当中的某个字符串,例如 MyApp:
adb logcat | grep MyApp
adb logcat | grep -i myapp #忽略大小写。
adb logcat | grep --color=auto -i myapp #设置匹配字符串颜色。更多设置请查看 grep 帮助。

进阶一点可以使用 grep 的正则表达式匹配。例如上一个例子会匹配一行中任意位置的 MyApp,可以设置为仅匹配 tag。默认的 log 输出如下,如果修改过输出格式相应的表达式也要修改。
I/CacheService( 665): Preparing DiskCache for all thumbnails.

可以看出 tag 是一行开头的第三个字符开始,根据这点写出表达式:
adb logcat | grep "^..MyApp"

根据这个格式也可以设置只显示某个优先级的 log,再匹配行首第一个字符即可。例如仅显示 Error 级别 tag 为 MyApp 的输出:
adb logcat | grep "^E.MyApp"
当然也可以匹配多个,使用 | 分割多个匹配表达式,要加转义符。例如要匹配 tag 为 MyApp 和 MyActivity 的输出:
adb logcat | grep "^..MyApp\|^..MyActivity"
adb logcat | grep -E "^..MyApp|^..MyActivity" #使用 egrep 无须转义符

2. 过滤不需要的输出,黑名单
还是使用 grep,用法也跟上面的一样,加一个 -v 即可。例如要过滤 tag 为 MyApp 和 MyActivity 的输出:
adb logcat | grep -v "^..MyApp\|^..MyActivity"
adb logcat | grep -vE "^..MyApp|^..MyActivity" #使用 egrep 无须转义符

3. 显示同一个进程的所有输出
有时一个程序里面的 tag 有多个,需要输出该程序(同一个 PID)的所有 tag;仅使用 tag 过滤有时也会漏掉一些错误信息,而一般错误信息也是和程序同一个 PID。还是通过 grep 实现,思路是先根据包名找到 pid 号,然后匹配 pid。写成 shell 脚本如下,参数是程序的 java 包名(如 com.android.media)。
查看源代码打印帮助\
#!/bin/bash

packageName=$1
pid=`adb shell ps | grep $packageName | awk '{print $2}'`

adb logcat | grep --color=auto $pid

4. 从当前开始显示
logcat 有缓存,如果仅需要查看当前开始的 log,需要清空之前的。adb logcat -c && adb logcat

5. 过滤 log 文件
有时需要分析 log 文件,过滤 log 文件还是使用 grep。例如 log 文件为 myapp.log,要匹配 tag 为 MyApp 和 MyActivity 的输出,然后输出到 newmyapp.log:cat myapp.log | grep "^..MyApp\|^..MyActivity" > newmyapp.log
Windows 下推荐使用 Notepad++,一个免费强大的记事本,支持正则表达式查找替换。可以高亮显示匹配内容,也可以删除不需要的内容。
以上的技巧主要用到了 grep,其实 logcat 本身也有过滤功能,可以根据 tag、优先级过滤 log,具体请参考 Android 官方文档 Reading and Writing Logs。如果喜欢使用图形界面,请参考 Using DDMS,DDMS 里面的 logcat 也可以同样过滤。
温馨提示:内容为网友见解,仅供参考
无其他回答

怎么用eclipse还有logcat命令的过滤log信息
1.直接新建一个过滤器(过滤规则),然后加上自己的配置,尤其是通过正则表达式去实现对于某些规则的取反,从而实现过滤掉某些信息 比如:在新建的规则中的by Log Tag中,输入:^(?!.*(IMGSRV)).即可过滤掉Tag是IMGSRV的那些log信息了。2.在LogCat的查找框中直接输入过滤规则,同理,通过正则去输入...

怎么用eclipse还有logcat命令的过滤log信息
我们可以在打开Eclipse之后,选择Window –> Show View ->Other菜单,然后在Android->LogCat中选择LogCat,这样LogCat便会在Eclipse的下方区域出现了。其中,在LogCat的右上方的5个字母分别表示了5种不同类型的日志信息(并以不同颜色加以区分,级别越高,颜色越突出):1. [V]:详细(Verbose)信息,输出...

怎么用eclipse还有logcat命令的过滤log信息
有时候只想看我们程序中用Log类的相关方法输出的各种信息,这时就可以考虑新建一个过滤器。点击LogCat的右上角的“+”号,可以创建一个新的过滤器。比如我们在by Log Tag的选项中填入上面程序输出的"hi world"这个tag。这样再运行时在我们新创建的Filter中就只显示hi world这个tag标记出来的信息了。

怎么用eclipse还有logcat命令的过滤log信息
可以app:应用名,如: app:com.bb.cc。这样就可以了,应该是你想要的 。在logcat的绿色加号处点击,后在filter那么协商 log.i和在by log tay 写上log.i就可以过滤了!^(?!.*(SurfaceTextureClient|IInputConnectionWrapper|GraphicBuffer|dalvikvm)).在log tag里这样加 如果我的回答没帮助到您,...

怎么用eclipse还有logcat命令的过滤log信息
Eclipse 作为 IDE 的话,用 ADT 所提供的 logcat 显示界面可以直接做到你的需求。在编辑的位置输入 app:your.package.name 便可以自动过滤包名为 your.package.name 的软件输出信息啦,如果在编写软件时注意了 Log.X 的使用,通过旁边的下拉菜单还可以根据日志的等级进行再一次进行的过滤。

怎么用eclipse还有logcat命令的过滤log信息
你好,查看和过滤logcat里面的内容有两种方式 选择log的级别 自定义log的tag过滤,一般tag是在程序中定义的Tag,希望可以帮助到你

catlog日志工具怎么使用
正常刚打开Eclipse会有一个All message过滤器(其实就是没过滤),他会把所有的五种日志全部打印出来。另外当我们创建项目的时候,会产生一个com.xxx.xxx的过滤器,这是运行项目时自动创建的,点击这个过滤器就能看到这个项目的日志信息。这里我们尝试添加一个自定义的过滤器。点击上图Logcat中的绿色+号...

android logcat 输出日志时,怎么通过级别来过滤日志,比如只显示出I级别...
1、如果是控制台,可以在控制台输入:adb logcat -s "*:I"2、如果是在Eclipse上的Logcat视图,可以选择filter的级别为“info”--- 更多疑问解答,尽在@安卓互助平台 新浪微博

android logcat 输出日志时,怎么通过级别来过滤日志,比如只显示出I级别...
1、如果是控制台,可以在控制台输入:adb logcat -s "*:I"2、如果是在Eclipse上的Logcat视图,可以选择filter的级别为“info”--- 更多疑问解答,尽在@安卓互助平台 新浪微博

eclipse的LogCat问题
1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log...

相似回答
大家正在搜