跳至主要內容

编写属于自己的Log输出控制


喜马拉雅视频教程04-编写属于自己的Log输出控制

为什么要编写一个属于自己的log输出工具类呢?

我们平时输出log直接是Log.d(TAG,”log内容”) 这样子输出的,而且很随意哦,如果一个应用很多。

或者写代码的人比较多的时候,那么log量就大了。

那我们要发布的时候怎么样把log关闭呢?删除掉吗?

删除的话,有很多呢,一条一条地去删除吗?

如果删除了,以后又出问题了,怎么样才能看问题呢?没有Log了呢!

这个时候我们就要定义一个自己的log工具类了,这个工具类可以控制是否要输出log,有一个总开关

使用方式不变,参数不变,而且还可以扩展更好,比如说写到一个文件里,以后出问题了,是否要上传到后台,让程序员分析问题

在下一下版本迭代解决掉这个问题。 最简单的Log工具类了

package com.sunofbeaches.himalaya.utils;

import android.util.Log;

/**
* Created by TrillGates on 18/10/7.
* God bless my code!
*/
public class LogUtil {

    public static String sTAG = "LogUtil";

    //控制是否要输出log
    public static boolean sIsRelease = false;

    /**
     * 如果是要发布了,可以在application里面把这里release一下,这样子就没有log输出了
     */
    public static void init(String baseTag, boolean isRelease) {
        sTAG = baseTag;
        sIsRelease = isRelease;
    }

    public static void d(String TAG, String content) {
        if (!sIsRelease) {
            Log.d("[" + sTAG + "]" + TAG, content);
        }
    }

    public static void v(String TAG, String content) {
        if (!sIsRelease) {
            Log.d("[" + sTAG + "]" + TAG, content);
        }
    }

    public static void i(String TAG, String content) {
        if (!sIsRelease) {
            Log.d("[" + sTAG + "]" + TAG, content);
        }
    }

    public static void w(String TAG, String content) {
        if (!sIsRelease) {
            Log.d("[" + sTAG + "]" + TAG, content);
        }
    }

    public static void e(String TAG, String content) {
        if (!sIsRelease) {
            Log.d("[" + sTAG + "]" + TAG, content);
        }
    }
}

使用方式:

初始化

在Application初始化的时候初始化一下

LogUtil.init(this.getPackageName(), false);

调用

LogUtil.d(TAG, "log内容");
20191004_200042.png
20191004_200042.png