当前位置:首页 > 实用技巧 >

安卓系统日志查看(安卓手机查看日志)

来源:原点资讯(www.yd166.com)时间:2023-06-02 14:10:52作者:YD166手机阅读>>

每天进步一点点,关注我们哦,每天分享测试技术文章

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

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

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

01命令行语法

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

[adb] logcat [<option>] ... [<filter-spec>] ...

您可以将 logcat 作为 adb 命令运行,也可以直接在模拟器或关联设备的 shell 提示中运行。

要使用 adb 查看日志输出,请转到您的 SDK platform-tools/ 目录并执行以下命令:

adb logcat

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

adb logcat --help

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

adb shell logcat02选项

下面介绍了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功能
03过滤日志输出

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”的日志消息。

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

使用 *:S 是确保日志输出受限于您已明确指定的过滤器的绝佳方式,它可以让过滤器充当日志输出的“白名单”。

以下过滤器表达式显示了优先级不低于“警告”的所有标记的所有日志消息:

adb logcat *:W

如果您从开发计算机运行 Logcat(相对于在远程 adb shell 上运行),则也可以通过导出环境变量 ANDROID_LOG_TAGS 的值设置默认过滤器表达式:

export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"04控制日志输出格式

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

  • brief:显示优先级、标记以及发出消息的进程的 PID
  • long:显示所有元数据字段,并使用空白行分隔消息
  • process:仅显示 PID
  • raw:显示不包含其他元数据字段的原始日志消息
  • tag:仅显示优先级和标记
  • thread:旧版格式,显示优先级、PID 以及发出消息的线程的 TID
  • threadtime(默认值):显示日期、调用时间、优先级、标记、PID 以及发出消息的线程的 TID
  • time:显示日期、调用时间、优先级、标记以及发出消息的进程的 PID

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

[adb] logcat [-v <format>]

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

adb logcat -v thread

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

05格式修饰符

格式修饰符依据以下一个或多个修饰符的任意组合更改 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:将本地时区添加到显示的时间。
06查看备用日志缓冲区

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

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

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

以下是 -b 选项的用法:

[adb] logcat [-b <buffer>]

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

adb logcat -b radio

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

logcat -b main -b radio -b events

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

logcat -b main,radio,events

END

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

栏目热文

android 查看系统日志(android开发获取系统日志)

android 查看系统日志(android开发获取系统日志)

统的指定路径下,如果想要停止捕获日志,则按下Ctrl C组合键。3.logcat -s <标签>:<优...

2023-06-02 14:37:17查看全文 >>

安卓如何查看手机日志(安卓手机重启日志在哪里看)

安卓如何查看手机日志(安卓手机重启日志在哪里看)

有的时候手机没有办法连接到电脑上看日志,这怎样才好呢?可以使用adb命令,通过网络来连接设备。1.设置端口adb tcp...

2023-06-02 14:29:35查看全文 >>

安卓日志文件看什么(安卓手机日志的位置)

安卓日志文件看什么(安卓手机日志的位置)

Hello,社区的真粉朋友们~大家好,随着realme UI3.0的到来,我们不仅在系统上给大家带来了无缝的畅速潮玩体验...

2023-06-02 14:28:24查看全文 >>

android系统日志(android系统日志清理)

android系统日志(android系统日志清理)

我们在做开发编码时,难免会打印一些日志来分析,通常用Android的Log打印日志时,只有基本的日志信息,效果如下图日志...

2023-06-02 14:12:05查看全文 >>

安卓开发中日志怎么管理

安卓开发中日志怎么管理

Android 项目统一日志文件配置, 这样可以方便管理,统一日志打印格式,在项目最后release 的也方便关闭日志。...

2023-06-02 13:58:30查看全文 >>

安卓机的日志在哪里(安卓手机日志的位置)

安卓机的日志在哪里(安卓手机日志的位置)

XLog是什么腾讯开源的Mars项目中有个XLog日志库。XLog是一个高性能文本存储方案,在真实环境中经受了微信数亿级...

2023-06-02 14:05:58查看全文 >>

安卓程序的log日志怎么查看

安卓程序的log日志怎么查看

ADB简介Adb的全称为AndroidDebugBridge:android调试桥梁,可以看出,Android的初衷是用...

2023-06-02 14:43:46查看全文 >>

android怎么设置日志(android app运行日志)

android怎么设置日志(android app运行日志)

自从 Android Studio Dolphin | 2021.3.1 Patch 1 版本开始,logcat的过滤规...

2023-06-02 14:39:12查看全文 >>

刚洗完的头发怎么弄成卷发

刚洗完的头发怎么弄成卷发

卷发教程来喽。这个是我洗完头发,正常吹干的一个状态,就比较直,然后从后面把头发分成两面的,这一面和这一面。我这个卷发棒是...

2023-06-02 14:13:32查看全文 >>

怎样让刚洗过的头发变成卷发(洗完头发后卷发怎么弄)

怎样让刚洗过的头发变成卷发(洗完头发后卷发怎么弄)

理发店同款卷发。今天就来教大家怎么样用这把梳子做出一个跟理发店一样好看又自然的卷发。·洗发后将头发吹到八九成干,取一缕头...

2023-06-02 14:09:18查看全文 >>

文档排行