Android NDK 开发中 adb logcat 命令的使用
一、
LogCat 存储在一个叫做 circular memory buffers 的缓冲中。
平时常用的都是通过eclipse 自带的 logcat 插件查看 logcat ,
其实也可以通过命令来导出 logcat ,以方便在某些特定的情况查看 logcat ,
如下是个简单的用法命令:
adb logcat -d > logcat.txt
---------------------- 你看见或看不见,我都是个分割线 -------------------------
二、
参照网上查找的资料和自己前些时间的开发工作实践,
(初步的探索,难免有浅陋之处,欢迎高手不吝赐教。)
总结了一些logcat 高级详细使用方法,如下所示:
[adb] logcat [<option>] ... [<filter-spec>] ...
[options] 命令包括如下选项:
-f <filename> — 指定输出日志信息到某个文件 ,默认是 stdout 。
-g — 输出指定的日志缓冲区,输出后退出。
-n <count> — 设置日志的最大数目<count> .,默认值是4,需要和 -r 选项一起使用。
-r <kbytes> — 每<kbytes> 时输出日志,默认值为16,需要和-f 选项一起使用。
-s — 设置过滤器,例如指定 '*:s'。
过滤器的格式是一个这样的串:<tag>[:priority]
其中 <tag> 表示log的component, tag (或者使用 * 表示所有) , priority 从低到高如下所示:
V — Verbose
D — Debug
I — Info
W — Warn
E — Error
F — Fatal
S — Silent
-v <format> — 设置log的打印格式, <format> 只能是以下选项中的一种:
这些字段可以通过修改输出格式来控制输出结果。
brief: 显示优先级/标记和原始进程的PID (默认格式)
process: 仅显示进程PID
tag: 仅显示优先级/标记
thread: 仅显示进程:线程和优先级/标记
raw: 显示原始的日志信息,没有其他的元数据字段
time: 显示日期,调用时间,优先级/标记,PID
long: 显示所有的元数据字段并且用空行分隔消息内容
-c — 清除所有log并退出
-d — 得到所有log并退出 (不阻塞)
-b <buffer> — 请求不同的环形缓冲区
Android日志系统为日志消息保持了多个循环缓冲区,而且不是所有的消息都被发送到默认缓冲区,
要想查看这些附加的缓冲区,可以使用-b 选项,以下是可以指定的缓冲区:
main — 查看主缓冲区 (默认缓冲区) radio — 查看包含在无线/电话相关的缓冲区消息 events — 查看事件相关的消息
-B — 输出log到二进制文件中(或者是以二进制形式输出log)。
---------------------- 你看见或看不见,我都是个分割线 -------------------------
三、
下面列举一个稍复杂一些的 logcat 命令使用:
adb logcat -v time -s file_a.cpp:V file_b.cpp:W *:S > logcat_local.txt
个人觉得,能看懂并熟练运用这种程度的命令,应该基本够用了。^_^