日志工具类
android.util.log
Log.v()
打印最为琐碎的、意义最小的日志信息
对应级别为:verbose
Android日志级别最低的一种
Log.d()
打印调试信息
对应级别为:debug
比verbose高一级
Log.i()
打印一些比较重要的数据
可以帮助分析用户行为数据
对应级别:info
比debug高一级
Log.w()
打印一些警告信息,提示程序在这个地方可能会有潜在的分享,最好去修复这些出现警告的地方
对应级别:warn
比info高一级
Log.e()
打印程序中的错误信息
对应级别:error
比warn高一级
案例
在HelloWorkd项目的MainActitvty中的onCreate()方法中添加一行打印日志的语句
package com.example.helloworld;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;/** * 继承自AppCompatActivity,是一种向下兼容的Activity * 可以将Activity在各个系统版本中增加的特性和功能最低兼容到Android2.1系统 * Activity是Android系统提供的一个活动基类 * 我们项目中所有的活动都必须继承他或者他的子类才能拥有活动的特性 * (AppCompatActivity是Activity的子类) */public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { /* onCreate()方法:一个活动被创建时,必定要执行的方法 */ super.onCreate(savedInstanceState); /* Android程序的设计讲究逻辑和视图分离 不推荐在活动(Activity)中直接编写界面 通用的做法是在布局文件中编写界面,然后在活动中引入 使用setContentView()方法,引入布局 */ setContentView(R.layout.activity_main); /* 传入两个参数 第一个参数:tag:传入当前的类名,主要用于打印信息进行过滤 第二个参数:msg:想要打印的具体的内容 */ Log.d("MainActivity","onCreate execute"); }}
控制台输出:
D/MainActivity: onCreate executeI/mple.helloworl: Not late-enabling -Xcheck:jni (already on)W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...E/MainActivity: onCreate error
logcat
为什么不用System.out.println()
I/System.out: helloworld
日志打印不可控制
打印时间无法确定
不能添加过滤器
日志没有级别区分
z onCreate()方法外,输入logt+TAB
private static final String TAG = "MainActivity";
在使用logd,logwu与TAB组合的时候,不用每次都输入TAG值
可以添加过滤器
show only selected application
只显示当前选中程序的日志
Firebase
谷歌提供的一个分析工具
No Filters
没有过滤器