Android 如何優雅的打印日志

chinar4 7年前發布 | 13K 次閱讀 安卓開發 Android開發 移動開發

1.介紹

Logger 是一款Android平臺上的簡單、優雅、強大的開源日志庫。

Logger提供了以下方法:

  • 打印線程的信息

  • 打印類的信息

  • 打印方法的信息

  • 優雅的打印JSON數據

  • 優雅的打印換行符

  • 打印簡潔的信息

  • 點擊日志跳轉至源碼

感受下Logger打印的日志:

JSON日志

2.簡單使用

在app根目錄的buil.gradle文件中加入依賴

compile 'com.orhanobut:logger:1.15'

和普通的Log一樣,Logger支持五種級別的日志打印方法:

Logger.v();
Logger.d();
Logger.i();
Logger.w();
Logger.e();

還有一種不常用的方法:

// what a terrible failure
// 可怕的失敗,報告一個永遠不可能發生的情況
Logger.wtf("Hello World!");

打印一條info級別的日志,默認的TAG是PRETTYLOGGER,看下效果:

Logger.i("Hello World!");

INFO級別日志

3.打印更多類型的數據

Logger還支持打印JSON、XML、集合、數組。

打印JSON

String JSON_CONTENT = "{\"weatherinfo\":{\"city\":\"北京\",\"cityid\":\"101010100\"," +
                "\"temp\":\"-2\",\"WD\":\"西北風\",\"WS\":\"3級\",\"SD\":\"241%\",\"WSE\":\"3\"," +
                "\"time\":\"10:61\",\"isRadar\":\"1\",\"Radar\":\"JC_RADAR_AZ9010_JB\"}}";

Logger.json(JSON_CONTENT);</code></pre>

Android 如何優雅的打印日志

JSON日志

打印XML

String XML_CONTENT = "<resp><city>北京</city><updatetime>16:10</updatetime><wendu>23</wendu>" +
                "<fengli>3級</fengli><shidu>19%</shidu><fengxiang>北風</fengxiang></resp>";

Logger.xml(XML_CONTENT);</code></pre>

XML日志

打印集合

List<String> list = new ArrayList<>();
list.add("Hello");
list.add("World");

Logger.d(list);</code></pre>

集合日志

打印數組的方式和集合類似,就不再舉例了。

4.打印異常

try {
    int a = 6 / 0;
} catch (Exception e) {
    Logger.e(e, "Exception");
}

異常日志

5.格式化字符串

Logger還提供了格式化字符串的功能。

Logger.d("Hello %s%s", "World", "!");

格式化字符串

6.自定義打印TAG

自定義全局TAG

新建一個Application類LoggerDemoApplication,在onCreate方法中調用Logger.init(TAG)。

public class LoggerDemoApplication extends Application {

private String TAG = "LoggerDemo";

@Override
public void onCreate() {
    super.onCreate();
    Logger.init(TAG);
}

}</code></pre>

在AndroidManifest中加入application的name屬性。

<application
    android:name=".LoggerDemoApplication"
    ...
</application>

全局TAG

自定義單個TAG

Logger.t("MyTag").d("Hello World!");

單個TAG

7.關閉日志打印

在LoggerDemoApplication中,設置log的級別為NONE即可關閉日志打印。

Logger.init(TAG).logLevel(LogLevel.NONE);

8.更多設置

Logger
  .methodCount(3)                 // 設置打印方法棧的個數,默認是2
  .hideThreadInfo()               // 隱藏線程信息,默認顯示
  .methodOffset(2)                // 設置調用堆棧的偏移值,默認是0
  .logAdapter(new AndroidLogAdapter()); // 自定義Log適配器
}

 

 

來自:http://www.jianshu.com/p/89b05c0ffd39

 

 本文由用戶 chinar4 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!