Android強大log框架Logger使用詳解

log資訊是開發中最最重要的部分,那麼如何更好的捕獲資訊呢?接下來就讓我們瞭解一下強大的log框架–Logger。

什麼是logger?

亮點?

  • 能夠提供:
    1. 執行緒資訊:log在哪個執行緒
    2. 類資訊:log在哪個類
    3. 方法資訊:log在哪個方法的哪一行
    4. 漂亮地列印json
    5. 漂亮的列印XML
    6. 漂亮的換行分割
    7. 整潔的輸出
    8. 跳轉到原始碼

為啥使用它?

  1. 預設實現是對於android.util.Log的封裝
  2. 彌補了“android的logcat的message有字元長度的限制,超過將直接截斷”的缺陷
  3. 支援引數新增佔位符來格式化字串,Logger.d(“hello %s”, “world”);
  4. 支援直接列印List,Set,Map,陣列型別等引用型別
  5. 指定任意TAG
  6. 配置初始化選項
  7. 支援自定義CustomLogAdapter實現LogAdapter,替換android.util.Log

如何使用?

新增依賴:

compile 'com.orhanobut:logger:1.15'
  1. 配置初始化選項(非必須選項,不配置的情況下會使用系統預設的初始化配置
 Logger
.init("mytag")    //LOG TAG預設是PRETTYLOGGER 
.methodCount(3)                 // 決定列印多少行(每一行代表一個方法)預設:2
.hideThreadInfo()               // 隱藏執行緒資訊 預設:顯示
.logLevel(LogLevel.NONE)        // 是否顯示Log 預設:LogLevel.FULL(全部顯示)
.methodOffset(2)                // 預設:0
.logAdapter(new AndroidLogAdapter()); //可以自己構造介面卡預設:AndroidLogAdapter
}

效果展示:

預設效果:
這裡寫圖片描述


Logger.init().logLevel(LogLevel.FULL).methodCount(3);

methodCount(3) ,中間方法區數量變為3,每一行代表一個方法。

這裡寫圖片描述


2.列印不同level的Log
Logger.v(String message); // VERBOSE級別,可新增佔位符
Logger.d(Object object); // DEBUG級別,列印物件
Logger.d(String message); // DEBUG級別,可新增佔位符
Logger.i(String message); // INFO級別,可新增佔位符
Logger.w(String message); // WARN級別,可新增佔位符
Logger.e(String message); // ERROR級別,可新增佔位符
Logger.e(Throwable throwable, String message); // ERROR級別,可新增佔位符
Logger.wtf(String message); // ASSERT級別,可新增佔位符
Logger.xml(String xml);
Logger.json(String json);

效果展示:

Logger.v("vvvvvvvv");

這裡寫程式碼片


Logger.d("dddddddd");

這裡寫圖片描述


Logger.e("eeeeeeee");

這裡寫圖片描述


Logger.w("wwwwwwww");

這裡寫圖片描述


Logger.v("vvvvvvvv");

這裡寫圖片描述


Logger.wtf("wtfwtf");

這裡寫圖片描述


Logger.json("{\n"  
"    \"name\": \"BeJson\",\n"  
"    \"url\": \"http://www.bejson.com\",\n"  
"    \"page\": 88,\n"  
"    \"isNonProfit\": true,\n"  
"    \"address\": {\n"  
"        \"street\": \"科技園路.\",\n"  
"        \"city\": \"江蘇蘇州\",\n"  
"        \"country\": \"中國\"\n"  
"    },\n"  
"    \"links\": [\n"  
"        {\n"  
"            \"name\": \"Google\",\n"  
"            \"url\": \"http://www.google.com\"\n"  
"        },\n"  
"        {\n"  
"            \"name\": \"Baidu\",\n"  
"            \"url\": \"http://www.baidu.com\"\n"  
"        },\n"  
"        {\n"  
"            \"name\": \"SoSo\",\n"  
"            \"url\": \"http://www.SoSo.com\"\n"  
"        }\n"  
"    ]\n"  
"}");

這裡寫圖片描述


    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
methodA();
}
void methodA(){
methodB();
}
void methodB(){ Logger.d("methodB","sas","asdasdasd",1);
}

這裡寫圖片描述


Logger.xml("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"  
"<android.support.constraint.ConstraintLayout\n"  
"    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n"  
"    xmlns:tools=\"http://schemas.android.com/tools\"\n"  
"    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n"  
"    android:id=\"@ id/activity_main\"\n"  
"    android:layout_width=\"match_parent\"\n"  
"    android:layout_height=\"match_parent\"\n"  
"    tools:context=\"com.libin.multi.tools.MainActivity\">\n"  
"\n"  
"    <TextView\n"  
"        android:layout_width=\"wrap_content\"\n"  
"        android:layout_height=\"wrap_content\"\n"  
"        android:text=\"Hello World!\"\n"  
"        app:layout_constraintBottom_toBottomOf=\"@ id/activity_main\"\n"  
"        app:layout_constraintLeft_toLeftOf=\"@ id/activity_main\"\n"  
"        app:layout_constraintRight_toRightOf=\"@ id/activity_main\"\n"  
"        app:layout_constraintTop_toTopOf=\"@ id/activity_main\" />\n"  
"    \n"  
"    <ImageView\n"  
"        android:layout_width=\"wrap_content\"\n"  
"        android:layout_height=\"wrap_content\" />\n"  
"    \n"  
"    <TextView\n"  
"        android:layout_width=\"wrap_content\"\n"  
"        android:layout_height=\"wrap_content\" />\n"  
"\n"  
"</android.support.constraint.ConstraintLayout>\n");

這裡寫圖片描述


new Thread(new Runnable() {
@Override
public void run() {
Logger.e("Thread");
}
}).start();

這裡寫圖片描述

掃碼關注公眾號“偉大程式猿的誕生“,更多幹貨等著你~
掃碼關注公眾號“偉大程式猿的誕生“,更多幹貨等著你~
掃碼關注公眾號“偉大程式猿的誕生“,更多幹貨等著你~

公眾號回覆“資料獲取”,獲取更多幹貨哦~