Android Studio 如何添加和查看日志
前面的小节我们介绍了开发者选项,从本小结我们学习如何使用添加和查看日志。
[toc]
1. 添加日志
Android 通过 Log 类,我们可以创建日志消息,这些消息会显示在 Logcat 中。一般来说,我们应使用以下日志方法,这些方法按照优先级从高到低(或者从最简略到最详细)的顺序列示:
-
Log.e(String, String)(错误)
-
Log.w(String, String)(警告)
-
Log.i(String, String)(信息)
-
Log.d(String, String)(调试)
-
Log.v(String, String)(详细)
除开发期间外,其他任何时候都绝不应将详细日志编译到我们的应用中。虽然会编译调试日志,但会在运行时将其去掉,而错误、警告和信息日志会始终保留。
对于每种日志方法,第一个参数都应是唯一标记,第二个参数都应是消息。系统日志消息的标记是一个简短的字符串,指示消息所源自的系统组件(例如 ActivityManager)。标记可以是我们认为有用的任何字符串,例如当前类的名称。
一种比较好的做法是,在要用于第一个参数的类中声明 TAG 常量。例如,我们可以按如下方式创建一条信息日志消息:
private static final String TAG = "MyActivity";
...
Log.i(TAG, "MyClass.getView() — get item number " + position);
Tips:长度超过 23 个字符的标记名称在 logcat 输出中会被截断。
2. 查看日志
Android Studio 中的 Logcat 窗口会显示系统消息,例如在进行垃圾回收时显示的消息,以及使用 Log 类添加到应用的消息。此窗口可以实时显示消息,也可以保留历史记录,因此我们可以查看较早的消息。
2.1 Logcat 窗口
Logcat 窗口会显示所选应用(从窗口顶部的下拉列表中选择)的日志消息,如下图所示。
Logcat 工具栏中提供以下按钮:
-
Clear logcat:点击此按钮可以清除显示的日志;
-
Scroll to the end:点击此按钮可以跳转到日志底部并查看最新的日志消息。如果我们先点击此按钮,然后点击日志中的某一行,则视图会在相应位置暂停滚动;
-
Up the stack trace 和 Down the stack trace:点击相应按钮可以在日志的堆栈轨迹中进行上下导航,从而选择输出的异常中显示的后续文件名(以及在编辑器中查看相应行号)。这与我们在日志中点击某个文件名时的行为相同;
-
Use soft wraps:点击此按钮可以启用换行并防止水平滚动(尽管所有非间断字符串仍然需要进行水平滚动);
-
Print:点击此按钮可以输出 logcat 消息。在显示的对话框中选择输出偏好设置后,我们还可以选择将其保存为 PDF 格式;
-
Restart:点击此按钮可以清除日志并重启 logcat。与 Clear logcat 按钮不同,此按钮可以恢复并显示之前的日志消息,因此当 Logcat 无响应而我们又不想失去日志消息时,此按钮是最有用的;
-
Logcat header:点击此按钮可以打开 Configure Logcat Header 对话框,在该对话框中,我们可以自定义各个 logcat 消息的外观,例如是否显示日期和时间;
-
Screen capture:点击此按钮可以截取屏幕截图;
-
Screen record:点击此按钮可以录制设备屏幕的视频(时长不超过 3 分钟)。
2.2 设置日志级别
我们可以通过设置日志级别来控制 logcat 中显示的消息数量。我们可以显示所有消息,也可以仅显示指示最严重情况的消息。无论日志级别设置如何,logcat 都会继续收集所有消息。此设置仅决定 logcat 显示什么。
在 Log level 菜单中,选择以下值之一:
-
Verbose:显示所有日志消息(默认值)。
-
Debug:显示仅在开发期间有用的调试日志消息,以及此列表中较低的消息级别。
-
Info:显示常规使用情况的预期日志消息,以及此列表中较低的消息级别。
-
Warn:显示尚不是错误的潜在问题,以及此列表中较低的消息级别。
-
Error:显示已经引发错误的问题,以及此列表中较低的消息级别。
-
Assert:显示开发者预计绝不会发生的问题。
2.3 搜索 logcat 消息
要搜索 logcat 中当前显示的消息,请执行以下操作:
-
如果我们想要使用正则表达式搜索模式,请选择 Regex。
-
在搜索字段中输入字符序列。Logcat 输出会相应地显示更改。
-
按 Enter 键以在此会话期间将搜索字符串保存到菜单中。
-
要重复搜索,请从搜索菜单中选择。根据需要选择或取消选择 Regex。
2.4 过滤 logcat 消息
将日志输出减少至可管理水平的一种方法是,使用过滤器施加限制。
要定义并应用过滤器,请执行以下操作:
-
在过滤器菜单中,选择一个过滤选项:
-
Show only selected application:仅显示通过应用代码生成的消息(默认选项)。Logcat 使用正在运行的应用的 PID 来过滤日志消息。
-
No Filters:不应用过滤器。无论我们选择哪个进程,logcat 都会显示设备中的所有日志消息。
-
Edit Filter Configuration:创建或修改自定义过滤器。例如,我们可以创建一个过滤器,以同时查看两个应用中的日志消息。
-
-
如果选择了 Edit Filter Configuration,还需要创建或修改过滤器,在 Create New Logcat Filter 对话框中指定过滤器参数:
-
Filter Name:输入要设定的过滤器的名称,或者从左侧窗格中进行选择以修改现有过滤器。名称只能包含小写字符、下划线和数字。
-
Log Tag:(可选)指定标记。
-
Log Message:(可选)指定日志消息文本。
-
Package Name:(可选)指定软件包名称。
-
PID:(可选)指定进程 ID。如需了解详情,请参阅 Logcat 消息格式。
-
Log Level:(可选)选择日志级别。
-
Regex:选择此选项可以为相应参数使用正则表达式语法。
-
如果我们认为并没有看到想要检查的日志消息,请尝试选择 No filters 并搜索特定日志消息。
3. 小结
本节课程我们主要学习了添加日志和查看日志。本节课程的重点如下:
- 掌握如何添加日志;
- 掌握如何查看日志。