一翻屈、簡介
為什么要對日志進(jìn)行封裝力细?
先對比一下效果:clipboard.png
clipboard.png
缺點(diǎn):
(1)輸入的參數(shù)較多且重復(fù)
(2)當(dāng)打印的日志信息過多時(shí)怕享,不方便查找我們所需的信息
(3)無法快速指定是哪一行打印出來的信息
(4)應(yīng)用發(fā)布到市場上時(shí)丹擎,需要手動一個(gè)個(gè)刪除打印的日志
封裝后:只需輸入你想打印的msg尾抑,使用方便。且可以在Logcat頁點(diǎn)擊類名即可跳轉(zhuǎn)到相應(yīng)的位置蒂培。
二再愈、Log具體封裝
import android.util.Log;
/**
*
* 日志封裝
*/
public class LogUtils {
static String className;//類名
static String methodName;//方法名
static int lineNumber;//行數(shù)
/**
* 判斷是否可以調(diào)試
* @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();
}
/**
* 獲取文件名、方法名护戳、所在行數(shù)
* @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));
}
}
三翎冲、關(guān)閉調(diào)試
當(dāng)我們要將應(yīng)用發(fā)布到市場時(shí),需要把日志清除掉(關(guān)閉調(diào)試)媳荒。
(1)第一種方式:打開project Stuctureclipboard.png
(2)第二種方式:打開build.gradle
clipboard.png
四、源碼地址
https://github.com/DayorNight/BLCS
五钳枕、內(nèi)容推薦
CSDN地址:https://blog.csdn.net/cs_lwb/article/details/82823536
上一篇《Android 友盟多渠道打包》
參考文檔:https://blog.csdn.net/lmj623565791/article/details/52506545