本文主要分享如何使用adb输出开发过程中的日志信息,如有错误,欢迎指正。
更多Android技术分享可以关注我的Android技术圈子,也可以加入QQ群号:690347536,学习交流Android开发技能。
一、adb 输出日志信息
- 基本使用:
[adb] logcat [options] ... [filter-spec]...
-b:加载可供查看的备用日志缓冲区.
-c:清除(清空)所选的缓冲区并退出
-e <expr>/--regex:只输出日志消息与 `<expr>` 匹配的行,其中 `<expr>` 是正则表达式
-m <count>/--max-count:输出 `<count>` 行后退出
--print:与 `--regex` 和 `--max-count` 配对,使内容绕过正则表达式过滤器,但仍能够在
获得适当数量的匹配时停止
-d:将日志转储到屏幕并退出
-f <filename>:将日志消息输出写入 `<filename>`。默认值为 `stdout`
-g:输出指定日志缓冲区的大小并退出
-s:相当于过滤器表达式 `'*:S'`
-D:输出各个日志缓冲区之间的分隔线
-t <time>:输出自指定时间以来的最新行
--pid=<pid>...:仅输出来自给定 PID 的日志
-
日志等级过滤:
打印日志优先级从低到高顺序
-
V
:详细(最低优先级) -
D
:调试 -
I
:信息 -
W
:警告 -
E
:错误 -
F
:严重错误 -
S
:静默(最高优先级,绝不会输出任何内容)
对应代码
Log
类记录日志中的Log.v(String,String); Log.d(String,String); Log.i(String,String); Log.w(String,String); Log.e(String,String);
-
-
日志输出格式:
-
brief
:显示优先级、标记以及发出消息的进程的 PID。 -
long
:显示所有元数据字段,并使用空白行分隔消息。 -
process
:仅显示 PID。 -
raw
:显示不包含其他元数据字段的原始日志消息。 -
tag
:仅显示优先级和标记。 -
thread:
:旧版格式,显示优先级、PID 以及发出消息的线程的 TID。 -
threadtime
(默认值):显示日期、调用时间、优先级、标记、PID 以及发出消息的线程的 TID。 -
time
:显示日期、调用时间、优先级、标记以及发出消息的进程的 PID
eg:
adb logcat -v thread
生成输出格式为thread的消息 -
-
格式修饰符:
-
color
:使用不同的颜色来显示每个优先级。 -
descriptive
:显示日志缓冲区事件说明。此修饰符仅影响事件日志缓冲区消息,不会对其他非二进制
文件缓冲区产生任何影响。事件说明取自 event-log-tags 数据库。 -
epoch
:显示自 1970 年 1 月 1 日以来的时间(以秒为单位)。 -
monotonic
:显示自上次启动以来的时间(以 CPU 秒为单位)。 -
printable
:确保所有二进制日志记录内容都进行了转义。 -
uid
:如果访问控制允许,则显示 UID 或记录的进程的 Android ID。 -
usec
:显示精确到微秒的时间。 -
UTC
:显示 UTC 时间。 -
year
:将年份添加到显示的时间。 -
zone
:将本地时区添加到显示的时间
格式修饰符依据以下一个或多个修饰符的任意组合更改 Logcat 输出。如要指定格式修饰符,请使用-v
选 项,如下所示
eg:adb logcat -b all -v color -d
-
-
查看备用日志缓冲区:
Android 日志记录系统为日志消息保留了多个环形缓冲区,而且并非所有的日志消息都会发送到默认的环形缓冲区。如要查看其他日志消息,可以使用
-b
选项运行logcat
命令,以请求查看备用的环形缓冲区。可以查看下列任意备用缓冲区:-
radio
:查看包含无线装置/电话相关消息的缓冲区。 -
events
:查看已经过解译的二进制系统事件缓冲区消息。 -
main
:查看主日志缓冲区(默认),不包含系统和崩溃日志消息。 -
system
:查看系统日志缓冲区(默认)。 -
crash
:查看崩溃日志缓冲区(默认)。 -
all
:查看所有缓冲区。 -
default
:报告main
、system
和crash
缓冲区。
更多Android技术分享可以关注我的Android技术圈子,也可以加入QQ群号:690347536,学习交流Android开发技能。
-