Android Log日志封装

一、简介
为什么要对日志进行封装?

封装前:快捷键输入loge便可打印出Log.e(TAG, "onCreate: ", );需要输入参数TAG和参数msg。 且我们可以在Logcat页面查看日志信息。

缺点:

(1)输入的参数较多且重复

(2)当打印的日志信息过多时,不方便查找我们所需的信息

(3)无法快速指定是哪一行打印出来的信息

(4)应用发布到市场上时,需要手动一个个删除打印的日志

封装后:只需输入你想打印的msg,使用方便。且可以在Logcat页点击类名即可跳转到相应的位置。

二、Log具体封装


import android.text.TextUtils;

import android.util.Log;

import com.alpha.framework.BuildConfig;

public class LogUtils {

static String className;//类名

    static String methodName;//方法名

    static int lineNumber;//行数

    private static String createLog(String log) {

StringBuffer buffer =new StringBuffer();

        buffer.append("================");

        buffer.append(methodName);

        buffer.append("(").append(className).append(":").append(lineNumber).append(")================:");

        buffer.append(log);

        return buffer.toString();

    }

/**

* 获取文件名、方法名、所在行数

*

    * @param sElements

    */

    private static void getMethodNames(StackTraceElement[]sElements) {

className =sElements[1].getFileName();

        methodName =sElements[1].getMethodName();

        lineNumber =sElements[1].getLineNumber();

    }

//log.i

    public static void i(String text) {

if (BuildConfig.LOG_DEBUG) {

if (!TextUtils.isEmpty(text)) {

getMethodNames(new Throwable().getStackTrace());

                Log.i(className, createLog(text));

            }

}

}

//log.e

    public static void e(String text) {

if (BuildConfig.LOG_DEBUG) {

if (!TextUtils.isEmpty(text)) {

getMethodNames(new Throwable().getStackTrace());

                Log.e(className, createLog(text));

            }

}

}

}

你可能感兴趣的:(Android Log日志封装)