日志工具类 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
,即可输出日志信息: