Log 工具打印日志
虽然在模拟器上能够看到 App 的运行, 却无法看到 App 的调试信息.
Android Studio 允许查看 App 的运行日志, 只是 Android 不使用 System.out.println, 而是采用 Log 工具打印日志. 用 System.out.println 打印日志的缺点: 日志打印不可控制、打印时间无法确定、不能添加过滤器、日志没有级别区分等等.
Android 中的日志工具类是 Log (android.util.Log), 这个类中提供了如下 5 个方法来供我们打印日志, 它将各类日志划分为五个等级, 每个等级的重要性是不一样的:
-
Log.v(): 用于打印那些最为琐碎的、意义最小的日志信息. 对应级别 verbose, 是 Android 日志里面级别最低的一种.
-
Log.d(): 用于打印一些调试信息, 这些信息对你调试程序和分析问题应该是有帮助的. 对应级别 debug, 比 verbose 高一级.
-
Log.i(): 用于打印一些比较重要的数据, 这些数据应该是你非常想看到的、可以帮你分析用户行为的数据. 对应级别 info, 比 debug 高一级.
-
Log.w(): 用于打印一些警告信息, 提示程序在这个地方可能会有潜在的风险, 最好去修复一下这些出现警告的地方. 对应级别 warn, 比 info 高一级.
-
Log.e(): 用于打印程序中的错误信息, 比如程序进入了 catch 语句中. 当有错误信息打印出来的时候, 一般代表你的程序出现严重问题了, 必须尽快修复. 对应级别 error, 比 warn 高一级.
一共就 5 个方法, 当然每个方法还会有不同的重载.
如果设置 e 的话, 前面等级较低的日志是看不见的, 如果设置为 v 的话, 后面等级较高的那些日志都是可以看见的, 其他级别依此类推. 假如我们选中的级别是 verbose, 也就是最低等级, 这意味着不不管我们使用哪一个方法打印日志, 这条日志都一定会显示出来. 而如果我们将级别选中为 debug, 这时只有我们使用 debug 及以上级别方法打印的日志才会显示出来, 以此类推.
一般而言, 日常开发使用 Log.d 即可.
在 Android Studio 当中, 假如你想打印一条 debug 级别的日志, 那么只需要输入 logd, 然后按下 Tab 键或者回车键, 就会帮你自动补全一条完整的打印语句. 输入 logi, 然后按下 Tab 键或者回车键, 会自动补全一条 info 级别的打印日志. 输入 logw, 按下 Tab 键或者回车键, 会自动补全一条 warn 级别的打印日志, 以此类推. 另外, 由于 Log 的所有打印方法都要求传入一个 tag 参数, 每次写一遍显然太过麻烦. 这里还有一个小技巧, 我们在 onCreate() 方法的外面输入 logt, 然后按下 Tab 键或者回车键, 这时就会以当前的类名作为值自动生成一个 TAG 常量, 如下所示:

日志窗口的顶部是一排条件筛选框, 从左到右依次为: 测试设备的名称 (如 Pixel_2_API_30) 、测试 App 的包名 (例如只显示 com.example.myapp 的日志) 、查看日志的级别 (例如只显示级别不低于 Debug 即 Log.d 的日志) 、日志包含的字符串 (例如只显示包含 MainActivity 的日志) , 还有最后一个是筛选控制选项 (其中 Show only selected application 表示只显示选中的应用的日志, 而 No Filters 则表示不过滤任何条件) .
例如, 自己添加的一条日志, 分为 tag 和 msg:

重新运行 App, 等模拟器刷新 App 界面后, 单击 Android Studio 底部的 Logcat 标签, 此时主界面下方弹出一排日志窗口.
我们可以在输入框里输入关键字的内容, 这样只有符合关键字条件的日志才会显示出来, 从而能够快速定位到任何你想查看的日志. 另外还有一点需要注意, 关键字过滤是支持正则表达式的, 有了这个特性, 我们就可以构建出更加丰富的过滤条件了.

图 4 中的 tag 和 msg 对应着图 3 自定义过滤器中的 Log Tag 和 Log Message.
自定义过滤器:




Show only selected application 表示只显示当前选中程序的日志; Firebase 是 Google 提供的一个开发者工具和基础架构平台, 我们可以不用管它; No Filters 相当于没有过滤器, 会把所有的日志都显示出来.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)