adb logcat教程
1.速查
$adb logcat -g //打印和缓冲区使用情况
$adb logcat -c main //清除main缓存区
$adb logcat -v threadtime -f /data/camera.log | grep -Ei "camera | daemon"
- -v threadtime 输出格式 ,默认是 brief
- -f /data/camera.log 保存到文件
- grep -Ei "camera | daemon" 是过滤,-i是忽略大小写,E是指定多个过滤字符串,logcat的自代过滤器(tag:优先级)不好用!
2.先要知道的第一件事
android把log输出到不同的缓冲区中,常见的几个log缓冲区:
| 缓冲区 | 描述 |
| radio | 输出通信系统的log |
| system | 输出系统组件的log |
| crash | 崩溃日志 |
| events | 输出event模块的log |
| main |
所有java层的log,以及不属于上面3层的log |
| all |
全部 |
3.先要知道的第二件事
- 有两个logcat : adb logcat 与 adb shell logcat 命令不同,使用场景不同。
- logcat有很多参数:adb logcat --help 可查看。
4.参数详解
第1个参数:打印各日志缓冲区的大小并退出
$adb logcag -g
结果如下:
main: ring buffer is 256Kb (235Kb consumed), max entry is 5120b, max payload is 4076b
system: ring buffer is 256Kb (238Kb consumed), max entry is 5120b, max payload is 4076b
crash: ring buffer is 256Kb (242Kb consumed), max entry is 5120b, max payload is 4076b
第2个参数:打印某个缓冲区日志
$adb logcat -b system
默认是 -b main -b system -b crash.
第3个参数:设置log的输出格式
$adb logcat -v threadtime
threadtime是输出格式,常见输出格式:
|
格式 |
说明 |
| brief | 显示优先级/标记和过程的PID发出的消息(默认格式) |
| process | 只显示PID |
| tag | 只显示优先级/标记 |
| raw | 显示原始的日志消息,没有其他元数据字段 |
| time | 调用显示日期、时间、优先级/标签和过程的PID发出消息 |
| thread | 过滤线程 |
| threadtime | 调用显示日期、时间、优先级、标签以及PID TID线程发出的消息 |
| long | 显示所有元数据字段与空白行和单独的消息 |

第4个参数:设置过滤器[ tag名:优先级 ] ,默认是[*:I]
$adb logcat ActivityManager:I YourApp:D *:S
这个命令指定了3个过滤器:
- ActivityManager:I
- YourApp:D
- *:S
其中ActivityManager和YourApp是tag,I 、D 、S是优先级。优先级表如下:从低到高
| V | Verbose(最低优先级) |
| D | Debug |
| I | Info |
| W | Warning |
| E | Error |
| F | Fatal |
| S | Silent |
再来一个例子:
$adb logcat *:E
第5个参数:输出到文件(注意文件保存在设备上)
$adb logcat -v threadtime -f /data/camera.log
5.详解,有些参数可以合并一起,最好分开,如 -v xxx -f xxx
Usage: logcat [options] [filterspecs]
options include:
-s Set default filter to silent.
Like specifying filterspec '*:s'
-f <filename> Log to file. Default to stdout
-r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-v <format> Sets the log print format, where <format> is one of: brief process tag thread raw time threadtime long -c clear (flush) the entire log and exit
-d dump the log and then exit (don't block)
-t <count> print only the most recent <count> lines (implies -d)
-t '<time>' print most recent lines since specified time (implies -d)
-T <count> print only the most recent <count> lines (does not imply -d)
-T '<time>' print most recent lines since specified time (not imply -d)
count is pure numerical, time is 'MM-DD hh:mm:ss.mmm'
-g get the size of the log's ring buffer and exit
-b <buffer> Request alternate ring buffer, 'main', 'system', 'radio',
'events', 'crash' or 'all'. Multiple -b parameters are
allowed and results are interleaved. The default is
-b main -b system -b crash.
-B output the log in binary.
-S output statistics.
-G <size> set size of log ring buffer, may suffix with K or M.
-p print prune white and ~black list. Service is specified as
UID, UID/PID or /PID. Weighed for quicker pruning if prefix
with ~, otherwise weighed for longevity if unadorned. All
other pruning activity is oldest first. Special case ~!
represents an automatic quicker pruning for the noisiest
UID as determined by the current statistics.
-P '<list> ...' set prune white and ~black list, using same format as
printed above. Must be quoted. filterspecs are a series of
<tag>[:priority] where <tag> is a log component tag (or * for all) and priority is:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent (supress all output) '*' means '*:d' and <tag> by itself means <tag>:v If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
If no filterspec is found, filter defaults to '*:I' If not specified with -v, format is set from ANDROID_PRINTF_LOG or defaults to "brief"
adb logcat教程的更多相关文章
- Android ADB命令教程二——ADB命令详解
Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html 我们使用 adb -h 来看看,adb命令里面 ...
- adb logcat 基本用法
入门android ,至少需要了解 adb 吧,那么打 log 也是必不可少的了. 下面简单介绍一下 adb logcat 基本用法: Usage: logcat [options] [filters ...
- 如何用adb logcat保存日志
//将log 保存到当前目录下 adb logcat -v time >a.log //log过滤 adb logcat | grep MyAppName //清除log adb logcat ...
- adb logcat 命令
转自:http://blog.csdn.net/tumuzhuanjia/article/details/39555445 1. 解析 adb logcat 的帮助信息 在命令行中输入 adb log ...
- dos保存adb logcat读取的Android信息
/***************************************************************************** * dos保存adb logcat读取的A ...
- 如何过滤 adb logcat 输出
对原作者表示感谢,转自博客:http://www.otechu.me/zh/2011/12/filtering-adb-logcat-output/ 本文介绍如何在 shell 命令行中过滤 adb ...
- adb logcat调试中常用的命令介绍
Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命 令来查看和使用. adb logcat 命令格式 : ad ...
- adb logcat 查看日志
使用 logcat 命令 查看和跟踪系统日志缓冲区的命令logcat的一般用法是: [adb] logcat [<option>] ... [<filter-spec>] .. ...
- adb logcat命令查看并过滤android输出log
cmd命令行中使用adb logcat命令查看android系统和应用的log,dos窗口按ctrl+c中断输出log记录. logcat日志中的优先级/tag标记: android输出的每一条日志都 ...
随机推荐
- HDU 6078 Wavel Sequence 树状数组优化DP
Wavel Sequence Problem Description Have you ever seen the wave? It's a wonderful view of nature. Lit ...
- jQuery.ajaxSetup()
jQuery.ajaxSetup()函数用于设置AJAX的全局默认设置. 该函数用于更改jQuery中AJAX请求的默认设置选项.之后执行的所有AJAX请求,如果对应的选项参数没有设置,将使用更改后的 ...
- TGraphiControl响应WM_MOUSEMOVE的过程(以TPaintBox为例)good
起因:非Windows句柄控件也可以处理鼠标消息,我想知道是怎么处理的:并且想知道处理消息的顺序(比如TPaintBox和TForm都响应WM_Mouse消息该怎么办)界面:把TPaintBox放到T ...
- 解决Javascript md5 和 Java md5 中文加密后不同问题
Javascript md5 和 Java md5 带中文字符加密结果不一致,可以通过编码进行转化. javascript可以使用encodeURLComponent将中文先转化一次再进行MD5加密. ...
- Hadoop 中的 (side data) 边数据
一.用途 边数据是作业所需的额外的只读数据,通常用来辅助主数据集: 二.方法 1.利用Configuration类来配置,利用setter()和getter()可方便的使用,方便存储一些基本的类型: ...
- 大O符号
大O 就是 时间复杂度.时间复杂度是大概的描述一个算法的用时(实际上从侧面的表达了他的效率) 最好时间复杂度,通常指在最好情形下,这个算法用时.反之,最坏情况下的就是最坏时间复杂度.通常 冒泡算法 的 ...
- 底层并发APIs_源自objc.io
本文由webfrogs译自objc.io,原文作者Daniel Eggert. 小引 本篇英文原文所发布的站点objc.io是一个专门为iOS和OS X开发者提供的深入讨论技术的平台,文章含金量很 ...
- Silverlight结合Web Service进行文件上传
search了非常多的文章,总算勉强实现了.有许多不完善的地方. 在HCLoad.Web项目下新建目录Pics复制一张图片到根目录下. 图片名:Bubble.jpg 右击->属性->生成操 ...
- stl里面的空间适配器
一般而言,如果频繁地向system heap申请和释放空间很小的内存空间块(小于128B的),就会对系统内存资源产生很多内存碎片(fragment)的问题,而C++的::operator new() ...
- 管理 Word 博客账户
1.1 多个博客账户 笔者的电脑上,Word 2013 有多个博客账户,如下图所示: 图1.1 多个博客账户 这些账户的名称在 Word 里是自动生成的,无法更改.账户一多就无法与相应的网站一一对应, ...