如何使用Logger

如何使用Logger

之前在Android上面使用Logger其實不是很方便,
為什麼呢?
因為只要呼叫它, 就必須要傳入兩個參數

Log.d(TAG,"hello");

而這個TAG是用來標示從哪個類別出來的,
因此又通常會這樣寫

public final static String TAG = MainActivity.class.getName();
//...
Log.d(TAG,"hello");


天啊! 寫一個Log前置作業就這麼冗長, 而且會出現很多雜訊。
所以我找到一個第三方Logger, 非常的方便, 他不但可以清楚幫你標示出Log的位置,
而且還可以傳入各種物件印出來。
使用上非常簡單, 只要在Gradle上加入

compile 'com.orhanobut:logger:1.15'

可以這樣使用

Logger.d("hello");

可以看到以下的畫面

╔══════════════════════════════════════════════════════════════════════════════
║ Thread: main
╟──────────────────────────────────────────────────────────────────────────────
║ Activity.performCreate  (Activity.java:5990)
║    MainActivity.onCreate  (MainActivity.java:14)
╟──────────────────────────────────────────────────────────────────────────────
║ hello
╚══════════════════════════════════════════════════════════════════════════════

說明如下


這樣一來就清楚明白落在哪一行那一個檔案下的訊息了。
原本的Log e w v都可以使用還有wtf wwww

Logger.e("hello");
Logger.w("hello");
Logger.v("hello");
Logger.wtf("hello");

也可以丟json跟xml

Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);

也可以類似print一樣丟參數給前面的字串

Logger.d("hello %s", "world");

甚至有支援資料結構, 之前我都是透過Gson轉成字串在印出來,
有了這個功能就方便多惹

Logger.d(list);
Logger.d(map);
Logger.d(set);
Logger.d(new String[]);

你也可以改變TAG的標記

Logger.init(YOUR_TAG);

預設會是PRETTYLOGGER
當然你也可以動態的設定TAG

Logger.d("hello");
Logger.t("mytag").d("hello");
Logger.e("hello");


可以設定要顯示多少行訊息

Logger.init().methodCount(1).hideThreadInfo();


只秀訊息XD

Logger.init().methodCount(0).hideThreadInfo();


注意事項

  • 建議filter使用prettylog

  • 確保你的soft wrap是關閉的


    參考網址
    Logger