本文主要介绍 Android Studio 新版本的 Logcat 用法。

博主博客

首先, 新版本的 Logcat 一旦升级以后就回不去了, 要把 Android Studio 卸载后重新安装才能用老版本的 Logcat。 既然回不去, 我们就拥抱变化, 学习新版本的用法。

新版本的 Android Studio 已经支持设置回老版本 Logcat。 具体操作 File->Settings->Experimental->Enable new Logcat tool window 取消勾选即可。

一、新增功能

界面

logcat-formatter
新版本的界面跟老版本的有所不同, 主要少了 Regex(正则表达式过滤)、进程选择框、自定义过滤器下拉选择等。

多个 Logcat 窗口

logcat-multiple-tabs
现在可以在 Logcat 中创建多个选项卡, 可以轻松在不同的设备间进行切换。右键点击选项卡可以重命名, 单击并拖动可以重新排列选项卡。

如果想对比两组日志之间的差异, 可以在日志视图中右键单击并选择 Split RightSplit Down 来拆分选项卡内的视图。要关闭拆分, 可以右键单击日志视图并选择 Close。每个拆分可以设置自己的设备连接、查看选项和查询。

在视图预设之间切换

可以点击不同的视图模式(标准紧凑自定义)之间快速切换, 每种视图模式都提供了不同的默认设置, 用于显示更多或者更少的信息, 例如时间戳、标签和进程ID(PID)。 还可以通过选择 Modify View 来自定义这些默认视图模式以及自定义视图模式。
logcat-view-presets

跨应用程序崩溃/重启跟踪日志

应用程序崩溃和重新启动时, 会产生 PROCESS ENDEDPROCESS STARTED 日志, 如下所示:
logcat-restarts

二、Logcat 过滤

注:正则表达式和除外请查看下面的 tag 例子, 所有标签都通用

  1. package: 以包名过滤日志, 预设 package:mine 表示用当前运行的应用包名进行过滤。
package:com.uso6
  1. level: 以优先级过滤日志。
level:VERBOSE	// 显示所有信息
level:DEBUG	// 显示调试信息
level:INFO	// 显示一般信息
level:WARN	// 显示警告信息
level:ERROR	// 显示错误信息
level:ASSERT	// 显示抛出的断言
  1. tag: 以标签过滤日志。
tag:nukix	// 过滤 nukix 的标签
tag:nukix tag:blog	// 同时过滤 nukix 和 blog 的标签
-tag:nukix	// nukix 的标签除外
tag~:[\w]+ // 以正则表达式过滤标签
-tag~:[\w]+	// 除外和正则表达式组合
  1. message: 以输出日志过滤日志。
  2. age: 保留指定时间的日志。
age:10s	// 从 10 秒以前的日志开始输出
age:1m // 从 1 分钟以前的日志开始输出
age:1h // 从 1 小时以前的日志开始输出
  1. line: 以行信息过滤日志(包括 tag 和 message)。