Log
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 高一级。
打开MainActivity,在onCreate()方法中添加一行打印日志的语句:
protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.layout.activity_main);
Log.d("MainActivity", "onCreate execute");
}
Log.d() 方法中传入了两个参数,第一个参数是tag,一般传入当前的类名就好,主要用于对打印信息进行过滤,第二个参数是msg,即想要打印的具体内容。
点击顶部工具栏上的运行按钮,或者使用快捷键Shift + F10(Mac 系统是control + R),等程序运行完毕,点击Android Studio 底部工具栏的Android Monitor,在logcat中就可以看到打印信息了。
其中,不仅可以看到打印日志的内容和tag 名,就连程序的包名,打印的时间以及应用程序的进程号都可以看到。
为什么使用Log而不使用System.out
System.out.println() 在Eclipse中只需要输入syso,然后按代码提示键,这个方法就会自动出来了,缺点 日志打印不可控制,打印时间无法确定,不能添加过滤器,日志没有级别区分······
快捷输入,在Android Studio 中,只需要输入logd,然后按下Tab键,就会帮你自动补全一条完整的打印语句,输入logi,logw,按下Tab键,以此类推。另外,由于Log的所有打印方法都要求传入一个tag参数,在onCreate()方法的外面输入logt,然后按Tab键,这时就会自动以当前类名作为值生成一个TAG常量。
private static final String TAG = "MainActivity";
添加过滤器
目前只有3个过滤器,Show only selected application 表示只显示当前选中程序的日志,Firebase 是谷歌提供的一个分析工具,No Filters 相当于没有过滤器,会把所有的日志都显示出来。
点击Edit Filter Configuration 会弹出一个过滤器配置界面。给过滤器起名叫data,并且让它对名为data的tag进行过滤。
点击OK,就会发现已经多出一个data过滤器。data这个过滤器只会显示tag名称为data 的日志。
logcat中的级别控制,logcat中有5个级别,分别对应着上述5个方法。
当前选中的级别是verbose,也就是最低等级,这意味着不管使用哪个方法打印日志,都一定会显示出来。而如果将级别选为debug,只有用debug及以上级别方法打印的日志才会显示出来,以此类推。
关键字过滤
可以在输入框输入关键字的内容,这样只有符合关键字条件的日志才会显示,能够快速定位到想看的日志,关键字过滤支持正则表达式,可以构建出更加丰富的过滤条件。