查看日志输出,请转到您的SDK(组图)

Logcat 是一个命令行工具,用于转储系统消息日志,包括设备抛出错误时的堆栈跟踪,以及使用 Log 类从您的应用程序写入的消息。

命令行语法

通过 adb shell 运行 Logcat,一般用法如下:

[adb]logcat[]…[]…

您可以将 logcat 作为 adb 命令运行,也可以直接从模拟器或相关设备上的 shell 提示符运行。要使用 adb 查看日志输出,请转到您的 SDK platform-tools/ 目录并执行以下命令:

亚行日志猫

要获取 logcat 在线帮助,请启动设备并执行以下命令:

adb logcat –帮助

您可以建立与设备的 shell 连接并执行以下命令:

亚行外壳

日志猫

选项

logcat 的命令行选项描述如下

-b :加载备用日志缓冲区以供查看,例如事件或广播。默认情况下使用主缓冲区、系统缓冲区和崩溃缓冲区集。请参阅查看备用日志缓冲区。

-c, –clear :清除(清空)选定的缓冲区并退出。默认缓冲区集是 main、system 和 crash。要清除所有缓冲区,请使用 -b all -c。

-e , –regex= :仅输出匹配行的日志消息,其中是正则表达式。

-m , –max-count= : 输出行后退出。这将与 –regex 配对,但独立工作。

–print :与 –regex 和 –max-count 配对以使内容绕过正则表达式过滤器,但在获得适当数量的匹配时仍然能够停止。

-d :将日志转储到屏幕并退出。

-f :写入日志消息输出。默认为标准输出。

-g, –buffer-size :输出指定日志缓冲区的大小并退出

-n :将最大轮换日志数设置为 。默认值为 4。 -r 选项是必需的。

-r :每次输出轮换日志文件。默认值为 16。 -f 选项是必需的。

-s :等价于过滤表达式’*:S’;它将所有标签的优先级设置为“静默”,并用于在可以添加内容的过滤器表达式列表之前。要了解更多信息,请转到过滤日志输出部分。

-v :设置日志消息的输出格式。默认格式是线程时间。有关支持的格式列表,请参阅控制日志输出格式部分。

-D, –dividers :日志缓冲区之间的输出分隔符。

-c :刷新(清除)整个日志并退出。

-t :仅输出最新的行数。此选项包括 -d 功能。

过滤日志输出

1、日志消息的标记是一个短字符串,指示消息源自的系统组件(例如,视图系统的“视图”)。

2、优先级是以下字符值之一(按优先级从低到高的顺序):

V:详细(最低优先级)

D:调试

一:信息

W:警告

E:错误

F:致命错误

S:静默(最高优先级,从不输出任何东西)

通过运行 Logcat 并观察每条消息的前两列,您可以获得系统中使用的标签的优先级列表,格式为 /。

以下是使用 logcat -v brief output 命令获得的简要 Logcat 输出的示例。它表明该消息与优先级“I”和标签“ActivityManager”有关:

I/ActivityManager( 585): 开始活动: Intent { action=android.intent.action…}

要将日志输出减少到可管理的级别,您可以使用过滤器表达式限制日志输出。

使用过滤器表达式怎么用计算器算反log,您可以向系统指示您感兴趣的标签/优先级组合,系统将抑制指定标签的其他消息。

过滤器表达式的格式为 tag:priority …,其中 tag 表示您感兴趣的标签,priority 表示可以为该标签报告的最低优先级。标有指定优先级或更高优先级的消息将写入日志。

您可以在过滤器表达式中提供任意数量的 tag:priority 规范。一系列规范用空格分隔。

以下是过滤器表达式的示例,它抑制标记为“ActivityManager”且优先级为“Info”或更高的日志消息,以及标记为“MyApp”且优先级为“Debug”或更高的日志消息除 log 之外的所有其他日志消息消息。

adb logcat ActivityManager:I MyApp:D *:S

上面表达式中的最后一个元素 *:S 将所有标签的优先级设置为“静默”,确保只显示标记为“ActivityManager”和“MyApp”的日志消息。

使用 *:S 是确保日志输出仅限于您明确指定的过滤器的绝佳方式,允许过滤器充当日志输出的“白名单”。

以下过滤器表达式显示优先级为“警告”或更高的所有标签的所有日志消息:

adb logcat *:W

如果您在开发计算机上运行 Logcat(而不是在远程 adb shell 上运行),您还可以通过导出环境变量 ANDROID_LOG_TAGS 的值来设置默认过滤器表达式:

export ANDROID_LOG_TAGS=”ActivityManager:I MyApp:D *:S”

控制日志输出格式

除了标签和优先级之外,日志消息还包含许多元数据字段。您可以修改消息的输出格式,以便它们显示特定的元数据字段。为此,您可以使用 -v 选项并指定以下支持的输出格式之一。

Brief:显示发出消息的进程的优先级、标志和 PID。

long:显示所有元数据字段并用空行分隔消息。

process:只显示PID。

raw:显示没有其他元数据字段的原始日志消息。

tag:仅显示优先级和标签。

thread:: Legacy 格式,显示发出消息的线程的优先级、PID 和 TID。

threadtime(默认):显示发布消息的线程的日期、调用时间、优先级、标签、PID 和 TID。

time:显示发出消息的进程的日期、调用时间、优先级、标志和 PID。

启动 Logcat 时怎么用计算器算反log,您可以使用 -v 选项指定所需的输出格式:

[adb] 日志猫 [-v]

以下示例显示如何使用输出格式线程生成消息:

adb logcat -v 线程

请注意,您只能使用 -v 选项指定一种输出格式,但可以指定任意数量的有意义的修饰符。Logcat 会忽略没有意义的修饰符。

格式修饰符

格式修饰符 根据以下一个或多个修饰符的任意组合更改 Logcat 输出。要指定格式修饰符,请使用 -v 选项,如下所示:

adb logcat -b 全部 -v 颜色 -d

每个 Android 日志消息都有一个与之关联的标志和优先级。您可以将任何格式修饰符与以下任何格式选项结合使用:brief、long、process、raw、tag、thread、threadtime 和 time。

您可以通过在命令行输入 logcat -v –help 来获取格式修饰符详细信息。

颜色:使用不同的颜色来显示每个优先级。

descriptive:显示日志缓冲区事件描述。此修饰符仅影响事件日志缓冲区消息,对其他非二进制缓冲区没有影响。事件描述取自 event-log-tags 数据库。

epoch:显示自 1970 年 1 月 1 日以来的时间(以秒为单位)。

单调:显示自上次启动以来的时间(以 CPU 秒为单位)。

可打印:确保所有二进制日志内容都被转义。

uid:如果访问控制允许,则显示已记录进程的 UID 或 Android ID。

usec:显示时间精确到微秒。

UTC:显示 UTC 时间。

年份:将年份添加到显示的时间。

zone:将本地时区添加到显示的时间。

查看备用日志缓冲区

Android日志系统为日志消息维护了多个环形缓冲区,并不是所有的日志消息都发送到默认的环形缓冲区。

要查看其他日志消息,您可以运行带有 -b 选项的 logcat 命令来请求查看备用环形缓冲区。您可以查看以下任何备用缓冲区:

radio:查看包含无线电/电话相关消息的缓冲区。

events:查看解密的二进制系统事件缓冲区消息。

main:查看主日志缓冲区(默认),不包括系统和崩溃日志消息。

system:查看系统日志缓冲区(默认)。

crash:查看崩溃日志缓冲区(默认)。

all:查看所有缓冲区。

默认值:报告主缓冲区、系统缓冲区和崩溃缓冲区。

以下是 -b 选项的用法:

[adb] 日志猫 [-b]

以下示例显示如何查看包含无线和电话相关消息的日志缓冲区。

adb logcat -b 收音机

或者,您可以为所有要输出的缓冲区指定多个 -b 标志,如下所示:

logcat -b 主要 -b 广播 -b 事件

您可以指定 -b 标志,后跟以逗号分隔的缓冲区列表,例如:

logcat -b 主要、广播、事件

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论