当然
System.out.println("abc");也可以在日志工具中显示出来
不过和日志相比缺少了日志级别,日志过滤器等功能,
所以通常都是用log而不用System.out.println
先放个Logcat界面的图片
现在我们打印出了我们想看到的日志信息,那这些日志信息是什么意思呢?
从左到右说明:
打印日期,进程号-线程号/包名 日志级别(I就表示Info) Tag : 日志信息
1. Log.v()
这个方法用于打印那些最为琐碎的,意义最小的日志信息。对应级别 verbose,是Android 日志里面级别最低的一种。
2. Log.d()
这个方法用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别 debug,比 verbose 高一级。
3. Log.i()
这个方法用于打印一些比较重要的数据,这些数据应该是你非常想看到的,可以帮你分析用户行为的那种。对应级别 info,比 debug 高一级。
4. Log.w()
这个方法用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别 warn,比 info 高一级。
5. Log.e()
这个方法用于打印一些应用执行时出现无法处理的严重错误,通常会导致程序无法继续运行,业务中断等严重故障,需要由用户处理,其重要程度比Warn高
6.还有一个最新的断言assert级别,我没用过就不讲了:)
Log.i("你好:", "这是我想要展示的日志内容");
常用手段是选定日志级别
然后再通过指定字段查找
1.选择你正在调试的app软件
P.s.(选上面那个,下面那个是之前运行的已经Dead了)
2.选择第一个:只展示选中程序的日志
当然我们也可以选第四个选项自定义日志过滤器
不过我平时都是用查找指定字段来过滤
左侧工具栏最常用到的就一个清空功能,第一个垃圾桶图标
在开发过程中总会打印很多日志用来调试程序,但程序上线要一行行删日志打印代码就很麻烦,可以自定义一个日志打印工具来管理要显示哪些级别日志,level为当前级别,VERBOSE表示全部显示,NOTHING表示全部不显示
public class LogUtil {
public static final int VERBOSE=1;
public static final int DEBUG=2;
public static final int INFO=3;
public static final int WARN=4;
public static final int ERROR=5;
public static final int NOTHING=6;
public static final int level=VERBOSE;
public static void v(String tag,String msg){
if (level<=VERBOSE){
Log.v(tag, msg);
}
}
public static void d(String tag,String msg){
if (level<=DEBUG){
Log.d(tag, msg);
}
}
public static void i(String tag,String msg){
if (level<=INFO){
Log.i(tag, msg);
}
}
public static void w(String tag,String msg){
if (level<=WARN){
Log.w(tag, msg);
}
}
public static void e(String tag,String msg){
if (level<=ERROR){
Log.e(tag, msg);
}
}
}