如何过滤adb logcat 过滤日志输出

& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区adb logcat命令查看并过滤android输出log_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
adb logcat命令查看并过滤android输出log
上传于||暂无简介
大小:1.86KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢Android系统开发常用shell命令汇总+vim中复制操作+adb logcat过
1、系统属性:查看与设置getpropsetprop解释:1)系统属性其实可以理解为全局变量、全局环境变量;2)getprop将读取系统所有可读的系统属性。静态的系统属性有很
一、shell命令
1、系统属性:查看与设置
setprop解释:
1)系统属性其实可以理解为全局变量、全局环境变量;
2)getprop将读取系统所有可读的系统属性。静态的系统属性有很多存放在/system/build.prop。例如Android版本号,硬件版本号,rom的版本号,等等,内核的版本号通过此命令无法获取,内核版本信息可以去cat /proc/version文件
3)setprop可以设置具有可写权限的属性。例如在init.rc文件中注册的某些service的属性。
因此假如你想获取当前android系统的版本号可以调用不同层次的函数接口,也可以直接跑到/system目录下去使用cat、awk去检索出所需要的版本信息。
二、vim操作
下面是vim复制粘贴的基本命令:
yy复制游标所在行整行。或大写一个Y。
2yy或y2y复制两行。&
y^复制至行首,或y0。不含游标所在处字元。
y$复制至行尾。含游标所在处字元。
yw复制一个word。
y2w复制两个字(单词)。
yG复制至档尾。
y1G复制至档首。
p小写p代表贴至游标后(下)。
P大写P代表贴至游标前(上)。
三、adb 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 &^..CacheService&
根据这个格式也可以设置只显示某个优先级的 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&
#显示指定log信息
adb logcat | grep -vE &^..MyApp|^..MyActivity&
#使用 egrep 无须转义符,删除指定的log信息,显示其他所有log信息
3. 显示同一个进程的所有输出&
有时一个程序里面的 tag 有多个,需要输出该程序(同一个 PID)的所有 tag;仅使用 tag 过滤有时也会漏掉一些错误信息,而一般错误信息也是和程序同一个 PID。还是通过 grep 实现,思路是先根据包名找到 pid 号,然后匹配 pid。写成 shell 脚本如下,参数是程序的 java 包名(如 com.android.media)。&
android的logcat详细用法&
Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过
logcat 命 令来查看和使用.&
使用logcat命令&
你可以用 logcat 命令来查看系统日志缓冲区的内容:&
[adb] logcat [&option&] ... [&filter-spec&] ...&
请查看Listing of logcat Command Options ,它有对logcat命 令有详细的描述 .&
每一个输出的Android日志信息都有一个标签和它的优先级.&
日志的标签是系统部件原始信息的一个简要的标志。(比如:“View”就 是查看系统的标签).&
优先级有下列集中,是按照从低到高顺利排列的:&
& & V ― Verbose (lowest priority)&
& & D ― Debug&
& & I ― Info&
& & W ― Warning&
& & E ― Error&
& & F ― Fatal&
& & S ― Silent (highest priority, on which nothing is ever printed)&
在运行logcat的时候在前两列的信息中你就可以看到 logcat 的标签列表和优先级别,它是这样标出的:&priority&/&tag& .&
下面是一个logcat输出的例子,它的优先级就似乎I,标签 就是ActivityManage:&
&I/ActivityManager( &585): Starting activity: Intent { action=android.intent.action...}&
&为了让日志输出能体现管理的级别,你还可以用过滤器来控制日志输出,过滤器可以帮助你描述 系统的标签等级.&
&过滤器语句按照下面的格式描tag:priority ... , tag 表 示是标签,priority 是表示标签的报告的最低等级. 从上面的tag的中可以得到日志的优先级. 你可以在过滤器中多次写tag:priority .&
你最喜欢的10:28 提问
关于android开发如何利用adb logcat命令打印自己应用的log
eclipse的 log 输出经常死掉,断点调试,有时是在两个断点之间死掉,需要log,但是adb log的命令不会用,请高人指点,谢谢。
按赞数排序
684关注|586收录
1826关注|145收录
541关注|1033收录
其他相似问题
相关参考资料

我要回帖

更多关于 adb logcat 过滤error 的文章

 

随机推荐