一、简介
-
之所以有这么多有区分的方法,这也是
Log
的分类。Log
的分类就如同Log
的静态常量成员定义的那样,而Log
的优先级按照数字大小排列,数字大的优先级高。 -
用
Log.println()
能达到与Log.v()、Log.d()、…
等方法同样的输出效果,只是在用它时,要指定对应的优先级。
二、案例
-
日志输出代码
// 一般填写当前文件名 public static final String TAG="MainActivity"; // System.out:正常输出 System.out.println("onCreate:System.out"); // Log.println:即 Verbose,输出普通信息 Log.println(1, TAG, "onCreate: log.println"); // logv:即 Verbose,输出普通信息 Log.v(TAG, "onCreate: logv"); // logd:即 Debug,输出调试信息 Log.d(TAG, "onCreate: logd"); // loge:即 Error,输出错误信息 Log.e(TAG, "onCreate: loge"); // logi:即 Information,输出提示信息 Log.i(TAG, "onCreate: logi"); // logm:即 Debug,输出调试信息 Log.d(TAG, "onCreate:logm"); // logr:即 Debug,输出调试信息 Log.d(TAG, "onCreate: logr"); // logw:即 Warning,输出警告信息 Log.w(TAG, "onCreate: logw"); // logwtf:即 What a terrible failure,输出非常致命的 FAULT 信息,可能杀死当前的进程 Log.wtf(TAG, "onCreate: logwtf"); ```
-
日志输出结果:
2021-09-27 14:13:48.480 32564-32564/com.example.test I/System.out: onCreate:System.out [ 1632723228.480 32564:32564 ?/MainActivity ] onCreate: log.println 2021-09-27 14:13:48.480 32564-32564/com.example.test V/MainActivity: onCreate: logv 2021-09-27 14:13:48.480 32564-32564/com.example.test D/MainActivity: onCreate: logd 2021-09-27 14:13:48.480 32564-32564/com.example.test E/MainActivity: onCreate: loge 2021-09-27 14:13:48.480 32564-32564/com.example.test I/MainActivity: onCreate: logi 2021-09-27 14:13:48.480 32564-32564/com.example.test D/MainActivity: onCreate:logm 2021-09-27 14:13:48.480 32564-32564/com.example.test D/MainActivity: onCreate: logr 2021-09-27 14:13:48.480 32564-32564/com.example.test W/MainActivity: onCreate: logw 2021-09-27 14:13:48.481 32564-32564/com.example.test E/MainActivity: onCreate: logwtf
三、日常调试选择
-
在
Android API
中,提供了一个日志工具类android.util.Log
,通过这个类可以以不同的级别输出日志。 -
Android
的Log
等级通常有六
类,按照日志级别由低到高
分别是Verbose
、Debug
、Info
、Warning
、Error
、Assert
。级别 输出方法 Verbose Log.v Debug Log.d Info Log.i Warn Log.w Error Log.e Assert Log.wtf -
平常用哪个作为调试最为方便,想要快速的看到输出结果,推荐
Log.e
,因为它这一项输出少,其实也可以哪一项级别输出少用哪个,只要不挂进程就行。 -
像一些级别低的日志输出函数,打开一大堆的输出信息,找个调试结果都半天。