文章目录
- 日志工具类 android.util.Log
- Logcat 中的过滤器
日志工具类 android.util.Log
Log
从属日志工具类 android.util.Log
,该类提供了五个方法供我们打印日志:
- Log.v() :用于打印那些最为琐碎的、意义最小的日志信息。对应级别
verbose
,是 Android 日志里面级别最低的一种。 - Log.d() :用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别
debug
,比verbose
高一级。 - Log.i() : 用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为数据。对应级别
info
,比debug
高一级。 - Log.w() :用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别
warn
,比info
高一级。 - Log.e() : 用于打印程序中的错误信息,比如程序进入到了 catch 语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别
error
,比warn
高一级。
举例:
Log.d("MainActivity", "onCreate execute");
// 两个参数:
// tag:过滤打印信息,一般为当前类名
// msg:打印的具体内容
不使用 System.out.println( )
而使用 Log
一方面是 AS 不支持 syso+TAB
的自动补全,但支持 logd/logi/logw/loge+TAB
生成 Log 的自动补全,另一方面是 Log
显示的信息更全面。
再偷懒一点,Log 的自动补全也有个缺陷——需要传入 tag
参数:
由我们填写太过繁琐,因此我们可以在 onCreate()
方法外输入 logt+TAB
生成值为当前类名的 TAG
常量:
Logcat 中的过滤器
Logcat
有三种过滤器,以满足我们不同的需求:
- Show only selected application : 表示只显示当前选中程序的日志。
- Firebase :谷歌提供的一个分析工具。
- No Filters :相当于没有过滤器,会把所有的日志都显示出来。
- Edit Filter Configuration :允许自定义过滤器。
我们来看看过滤器起到什么作用:
- 过滤器的名字叫:Unnamed-0
- 对参数 tag 值为 logshow 的日志进行过滤
点击 OK 后将过滤器换为 Unnamed-0,发现 Logcat 没有日志信息:
这是因为 Unnamed-0 只会显示 tag 名称为 logshow 的日志。只需要将原 Log.d 的 tag 从 MainActivity
改为 logshow
,即可输出日志信息: