一、简介
为什么要对日志进行封装?
先对比一下效果: clipboard.png 打印结果: clipboard.png 封装前:快捷键输入loge便可打印出Log.e(TAG, "onCreate: ", );需要输入参数TAG和参数msg。 且我们可以在Logcat页面查看日志信息。缺点:
(1)输入的参数较多且重复
(2)当打印的日志信息过多时,不方便查找我们所需的信息
(3)无法快速指定是哪一行打印出来的信息
(4)应用发布到市场上时,需要手动一个个删除打印的日志
封装后:只需输入你想打印的msg,使用方便。且可以在Logcat页点击类名即可跳转到相应的位置。
二、Log具体封装
import android.util.Log;
/**
*
* 日志封装
*/
public class LogUtils {
static String className;//类名
static String methodName;//方法名
static int lineNumber;//行数
/**
* 判断是否可以调试
* @return
*/
public static boolean isDebuggable() {
return BuildConfig.DEBUG;
}
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();
}
public static void e(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.e(className, createLog(message));
}
public static void i(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.i(className, createLog(message));
}
public static void d(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.d(className, createLog(message));
}
public static void v(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.v(className, createLog(message));
}
public static void w(String message){
if (!isDebuggable())
return;
getMethodNames(new Throwable().getStackTrace());
Log.w(className, createLog(message));
}
}
三、关闭调试
当我们要将应用发布到市场时,需要把日志清除掉(关闭调试)。
(1)第一种方式:打开project Stucture clipboard.png(2)第二种方式:打开build.gradle clipboard.png 就不需要像以前一样一行行删除。当要用的时候再打开即可
四、源码地址
https://github.com/DayorNight/BLCS
五、内容推荐
CSDN地址:https://blog.csdn.net/cs_lwb/article/details/82823536
上一篇《Android 友盟多渠道打包》
参考文档:https://blog.csdn.net/lmj623565791/article/details/52506545
网友评论