首页 > 数码 正文

app测试日志如何获取 app测试怎么看日志

时间:2023-09-27 作者:佚名

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试

码同学抖音号:小码哥聊软件测试

Logcat命令行工具

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

命令行语法

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

[adb] logcat [

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

adb logcat

要获取 logcat 在线帮助,请启动设备,然后执行以下命令:adb logcat --help

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

选 项

下面介绍了logcat的命令行选项

-b :加载可供查看的备用日志缓冲区,例如events或radio。默认使用 main、system 和 crash 缓冲区集。请参阅查看备用日志缓冲区。-c, –clear :清除(清空)所选的缓冲区并退出。默认缓冲区集为main、system和crash。要清除所有缓冲区,请使用-b all -c。-e , –regex= :只输出日志消息与匹配的行,其中是一个正则表达式。-m , –max-count= :输出行后退出。这样是为了与–regex配对,但可以独立运行。–print :与–regex和–max-count配对,使内容绕过正则表达式过滤器,但仍能够在获得适当数量的匹配时停止。-d :将日志转储到屏幕并退出。-f :将日志消息输出写入 。默认值为stdout。-g, –buffer-size :输出指定日志缓冲区的大小并退出-n :将轮替日志的数量上限设置为 。默认值为4。需要使用 -r 选项。-r :每输出时轮替日志文件。默认值为16。需要使用-f选项。-s :相当于过滤器表达式‘*:S’;它将所有标记的优先级设为“静默”,并用于放在可添加内容的过滤器表达式列表之前。要了解详情,请转到有关过滤日志输出的部分。-v :设置日志消息的输出格式。默认格式为threadtime。有关支持的格式列表,请参阅介绍控制日志输出格式的部分。-D, –dividers :输出各个日志缓冲区之间的分隔线。-c :清空(清除)整个日志并退出。-t :仅输出最新的行数。此选项包括-d功能。

过滤日志输出

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

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

V:详细(最低优先级)D:调试I:信息W:警告E:错误F:严重错误S:静默(最高优先级,绝不会输出任何内容)

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

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

I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}

要将日志输出降低到可管理的水平,您可以使用过滤器表达式限制日志输出。

通过过滤器表达式,您可以向系统指明您感兴趣的标记/优先级组合,系统会针对指定的标记抑制其他消息。

过滤器表达式采用 tag:priority … 格式,其中tag指示您感兴趣的标记,priority指示可针对该标记报告的最低优先级。不低于指定优先级的标记的消息会写入日志。

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

以下是一个过滤器表达式的示例,该表达式会抑制除标记为“ActivityManager”、优先级不低于“信息”的日志消息,以及标记为“MyApp”、优先级不低于“调试”的日志消息以外的所有其他日志消息。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:显示不包含其他元数据字段的原始日志消息。

免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章后,再私信小编「暗号:码同学666」获取资料哦

tag:仅显示优先级和标记。thread::旧版格式,显示优先级、PID 以及发出消息的线程的 TID。threadtime(默认值):显示日期、调用时间、优先级、标记、PID 以及发出消息的线程的 TID。time:显示日期、调用时间、优先级、标记以及发出消息的进程的 PID。

启动 Logcat 时,您可以使用 -v 选项指定所需的输出格式:[adb] logcat [-v ]

以下示例显示了如何生成输出格式为 thread 的消息:adb logcat -v thread

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

格式修饰符

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

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

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

color:使用不同的颜色来显示每个优先级。descriptive:显示日志缓冲区事件说明。此修饰符仅影响事件日志缓冲区消息,不会对其他非二进制文件缓冲区产生任何影响。事件说明取自 event-log-tags 数据库。epoch:显示自 1970 年 1 月 1 日以来的时间(以秒为单位)。monotonic:显示自上次启动以来的时间(以 CPU 秒为单位)。printable:确保所有二进制日志记录内容都进行了转义。uid:如果访问控制允许,则显示 UID 或记录的进程的 Android ID。usec:显示精确到微秒的时间。UTC:显示 UTC 时间。year:将年份添加到显示的时间。zone:将本地时区添加到显示的时间。

查看备用日志缓冲区

Android 日志记录系统为日志消息保留了多个环形缓冲区,而且并非所有的日志消息都会发送到默认的环形缓冲区。

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

radio:查看包含无线装置/电话相关消息的缓冲区。events:查看已经过解译的二进制系统事件缓冲区消息。main:查看主日志缓冲区(默认),不包含系统和崩溃日志消息。system:查看系统日志缓冲区(默认)。crash:查看崩溃日志缓冲区(默认)。all:查看所有缓冲区。default:报告 main、system 和 crash 缓冲区。

以下是 -b 选项的用法:[adb] logcat [-b ]

以下示例显示了如何查看包含无线装置和电话相关消息的日志缓冲区。adb logcat -b radio

此外,您也可以为要输出的所有缓冲区指定多个 -b 标记,如下所示:logcat -b main -b radio -b events

您可以指定一个 -b 标记,后跟缓冲区逗号分隔列表,例如:logcat -b main,radio,events

END

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

本文信息为网友自行发布旨在分享与大家阅读学习,文中的观点和立场与本站无关,如对文中内容有异议请联系处理。

本文链接:https://www.paituo.cc/tech/1061266.html

  • 小编推荐

    小米12Pro性能提升了什么以及对比之前的机型性能提升了多少倍

    本文讲述小米12Pro性能提升了什么以及对比之前的机型性能提升了多少倍,简介如下 小米12Pro这是小米最新推出的一款标准的高端性能的旗舰手机,可以为用户提供很好的手机颜值的同时,带来很好的手机性能体验,那么这次的手机提升了多少? 小米12...

    2022年上半年值得入手的天玑9000的手机以及哪些天玑9000的手机可以入手

    本文讲述2022年上半年值得入手的天玑9000的手机以及哪些天玑9000的手机可以入手,简介如下 今天小编为大家带来准备了一些比较好用的天玑9000系列的手机,这些手机不仅仅为用户提供很好的颜值,同时为用户提供很好的性能体验,为用户提供更低的功耗,那么有哪...

    哔哩哔哩怎么参与直播嘉年华活动教程

    本文讲述哔哩哔哩怎么参与直播嘉年华活动教程,简介如下 哔哩哔哩推出了嘉年华活动,参与这里的直播嘉年华活动,就可获得丰富的直播奖励,想知道该如何参与的话,就和小编接着看下去吧。哔哩哔哩参与直播嘉年华活动教程 1、打...

    如何解决Win10系统麦克风声音太小

    本文讲述如何解决Win10系统麦克风声音太小,简介如下 如何解决Win10系统麦克风声音太小 1、首先找到右下角的喇叭图标。 2、接着右键点击选择录音设备,进入麦克风设置界面。 3、之后可以看到我们的麦克风设备是否...

    苹果电脑怎么删除照片

    本文讲述苹果电脑怎么删除照片mac照片怎么批量删除,简介如下很多刚刚使用苹果电脑的小伙伴对于mac系统中的一些操作不是很了解,就比如说不知道在mac系统中怎么批量删除照片,不过啥都懂的小编就可以轻松帮助大家解决问题,现在...

    伊利爱儿俱乐部怎么注册会员

    本文讲述伊利爱儿俱乐部怎么注册会员,简介如下 开始购买伊利产品的用户,可以注册俱乐部会员来享受会员的权益,那要怎么注册成为会员呢?下面就来为大家详细介绍一下具体操作步骤,一起看看吧 伊利爱儿俱乐部怎么注册...

    如何在PS中对图片进行缩放或放大的操作 如何在ps中图片抽去颜色放到其他空白图片里

    如何在PS中对图片进行缩放或放大的操作,简介如下如何用PS轻松实现图片的放大缩小、调整如何用PS轻松实现图片的放大缩小、调整Photoshop是一款常用的图像处理软件,其功能强大,可以实现各种各样的图像处理效...

    如何取消超链接 如何取消超链接快捷键

    如何取消超链接,简介如下超链接(Hyperlink)是Web页面中非常重要的元素之一,它可以让用户从一个页面轻松地跳转到另一个相关页面。但是,有时候我们不想让某些链接生效,那么怎么取消...