Android 日志输出(println、logv、logd、logi、logw、loge、logwtf)

736 阅读2分钟

一、简介

image.png

  • 之所以有这么多有区分的方法,这也是 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
    

    image.png

三、日常调试选择

image.png

  • Android API 中,提供了一个日志工具类 android.util.Log,通过这个类可以以不同的级别输出日志。

  • AndroidLog 等级通常有 类,按照日志级别 由低到高 分别是 VerboseDebugInfoWarningErrorAssert

    级别输出方法
    VerboseLog.v
    DebugLog.d
    InfoLog.i
    WarnLog.w
    ErrorLog.e
    AssertLog.wtf
  • 平常用哪个作为调试最为方便,想要快速的看到输出结果,推荐 Log.e,因为它这一项输出少,其实也可以哪一项级别输出少用哪个,只要不挂进程就行。

  • 像一些级别低的日志输出函数,打开一大堆的输出信息,找个调试结果都半天。

    image.png