如何更優雅的打Log
新的篇章
之前做了一個 Android-ui-2019(這個同步更新)
但是有朋友反饋說,開源庫內容不錯,但是有點太多了,不便於查找,希望我做個開源庫整理,聽到這個需求,我面對1800+的開源庫,竟然有點不好下手,想來想去,我決定將這個開源庫進行整理,重新配圖並持續更新,希望大家多多關注我。比心~
精彩回顧
Viewpager開源庫整理
時間選擇器開源庫整理
Menu開源庫整理
動態權限庫
日常開發中打log日誌是我們必不可少的,那麼怎麼寫能讓你的Log更美觀更好看更顯眼呢,今天分享一下我封裝Log的方式
方式一
Log.i("lovesosoi","Logi");
Log.d("lovesosoi","Logd");
Log.v("lovesosoi","Logv");
Log.e("lovesosoi","Loge");
方式二
public static String TAG="Lovesosoi";
Log.i(TAG,"Logi");
Log.d(TAG,"Logd");
Log.v(TAG,"Logv");
Log.e(TAG,"Loge");
方式三
將Log進行簡單的封裝,其實就是做一個開關,也沒有加太多的功能
public class LogUtils {
private static boolean isDebug = true;
private static String TAG = "tag";
public boolean isDebug() {
return isDebug;
}
public static void setDebug(boolean debug) {
isDebug = debug;
}
public static void setTag(String debug) {
TAG = debug;
}
public static void e(String msg) {
if (isDebug) {
Log.e(TAG,msg);
}
}
public static void e(String tag,String msg) {
if (isDebug) {
Log.e(tag,msg);
}
}
}
class Test{
public static void main(){
LogUtils.setDebug(true);
LogUtils.setTag("Lovesosoi");
LogUtils.e("heheh");
}
}
爲了追求更加便捷,好看實用的Log,我在github 上進行了搜索查找,找到了以下的Log開源庫。
電腦端顯示Log
名字 | 介紹 | star | 圖片 |
---|---|---|---|
logger | 簡介好看使用的log庫 | 11540星 | |
xLog | 簡單、美觀、強大、可擴展的 Android 和 Java 日誌庫 | 1859星 | |
KLog | Android LogCat 工具類,支持行號、所在函數、點擊自動跳轉、Json格式自定解析打印等功能。 | 1725星 | |
FLogger | 基於雙緩衝隊列、多刷盤機制的超輕量級 java 日誌 | 499星 | |
jlog | jlog是一款針對Android開發者的日誌工具 | 478星 | |
Android-PLog | A Pure, Pretty and Powerful logging library for android | 165星 | |
LogCollector | 一個收集 app 輸出日誌的工具 | 159星 |
手機端顯示Log
名字 | 介紹 | star | 圖片 |
---|---|---|---|
Lynx | 可在手機上查看 logcat | 682星 | |
LogcatViewer | 可在手機上查看 logcat | 226星 | |
Console | 可在手機上查看 logcat | 92星 | |
DebugOverlay-Android | App 端,查看 Logcat 信息 | 80星 |
看了大神寫的庫,我心裏就有一個疑問,我和大神的區別在哪裏,我總結一下主要是兩點,一是樣式,大神的樣式更好看,二是功能更全,我們去看一下star 最高的代碼
解析Logger
爲什麼Logger能顯示Log的代碼行數,他是怎麼做到的呢
調用這個方法就能獲取到當前方法所在方法棧信息,我們再來看看StackTraceElement這個類
我們做一個小測試~
這樣類名,方法名,行數就都獲取到了。
第二個問題來了,怎麼做到這麼整潔的呢
源碼是這麼做的,拼出來的!
其他的就是格式問題了,自己動手封裝一個屬於自己的Log庫試試吧~~
總結
所有開源庫都是在 Android-ui-2019基礎上修改的,歡迎大家star,我會把我遇到所有好的開源庫分享出來,大家一起學習,也歡迎大家訂閱我的個人微信公衆號MAndroid,有問題可以問我哦,我會盡我所能給大家解答的。