国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Logger 日志打印庫詳解

2019-11-06 09:40:44
字體:
來源:轉載
供稿:網友

一、基本使用

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

1,Logger 提供了以下方法:

打印線程的信息打印類的信息打印方法的信息優雅的打印JSON數據優雅的打印換行符打印簡潔的信息點擊日志跳轉至源碼

2,引入依賴庫,在 app 根目錄的 build.gradle 文件中加入如下代碼:

compile 'com.orhanobut:logger:1.15'

3,包括的方法:

Logger.d(“hello”); Logger.d(“hello %s %d”, “world”, 5); // 字符串格式化 Logger.d(“hello”); Logger.e(“hello”); Logger.w(“hello”); Logger.v(“hello”); Logger.wtf(“hello”); Logger.json(JSON_CONTENT); Logger.xml(XML_CONTENT); Logger.log(DEBUG, “tag”, “message”, throwable);

4,同時支持 List、Map、Set 和數組的輸出:

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

5,Logger 全局配置

這里是全局的 Logger 配置,如果不設置會使用默認值

Logger .init(YOUR_TAG) // 默認 TAG 為 PRETTYLOGGER .methodCount(3) // 默認方法數 2 .hideThreadInfo() // 默認顯示線程信息 .logLevel(LogLevel.NONE) // 默認級別 LogLevel.FULL,為顯示所有級別日志 .methodOffset(2) // 設置調用堆棧的偏移值,默認是 0 .logAdapter(new AndroidLogAdapter()); // 默認 AndroidLogAdapter}

LogLevel.NONE 表示不打印日志,在發布版本中用 通過 logAdapter() 方法,可以自定義日志實例。需要實現 LogAdapter

6,Logger 局部配置

對單個 Log 的配置,如下:

TAG:

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

methodCount:

Logger.init().methodCount(1);Logger.t(1).d("hello");

二、使用技巧

1,默認的設置,效果如下:

logger_print_sample

2,不顯示方法數和線程信息,效果如下:

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

logger_print_sample_only_message

3,Json 排版效果:

Logger.json(YOUR_JSON_DATA);

logger_print_json

三、日志打印規范

1,日志的級別(由高到低)

ERROR:系統中發生了非常嚴重的問題,導致業務不正常服務,必須馬上進行處理。

WARN:預期會發生的,并且已經有了其他的處理流程,處理過程可以繼續。

INFO:重要的業務處理已經結束。如:處理機票預訂的系統,對每一張票要有且只有一條INFO信息描述 “[Who] booked ticket from [Where] to [Where]”;另外顯著改變應用狀態的每一個 action,如數據更新,外部系統請求。

DEBUG:開發人員使用,該級別日志的主要作用是對系統每一步的運行狀態進行精確的記錄。通過該種日志,可以查看某一個操作每一步的執 行過程,可以準確定位是何種操作,何種參數,何種順序導致了某種錯誤的發生。

VERBOSE:非常具體的信息,只能限于開發調試使用,不應該編譯進產品中。

2,標點符號的使用

表示一個進行中的過程用 … 結尾:

Starting a process…

表示錯誤用 ! 結尾:

The name has more than 1 record!

正常語句用 . 結尾, 例:

Received an example event.

3,周期性調用的信息

有些函數可能會周期性地被調用,如果有日志的話會打印的非常多。所以要求:

將此類函數的正常日志信息打到debug里面盡量去掉不重要信息,保留到最多一行為宜

4,禁止(不適當的打印)

將你認為重要但不是錯誤的信息打到ERROR里面

過于寬泛化的描述,比如:

log.debug(“start processing…)

應該更明確地記錄操作,比如:

log.debug(“start retrive endpoint data processing…”)

盡量減少使用print或者用log往終端打印信息。

文章來源: http://www.ionesmile.com/android/log-logger-explain  

參考資料: http://www.jianshu.com/p/8551fe9c6354 (LOG使用規范) https://github.com/alaudacloud/style-guides/blob/master/logs.md http://blog.jobbole.com/56574/ (王健:最佳日志實踐)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松滋市| 若羌县| 格尔木市| 道孚县| 龙胜| 南宁市| 福海县| 连云港市| 彝良县| 泸水县| 乐都县| 屏东市| 盈江县| 财经| 郯城县| 沁水县| 武强县| 西畴县| 菏泽市| 保定市| 宜宾市| 邯郸县| 郑州市| 余干县| 古蔺县| 太原市| 手游| 库伦旗| 乡城县| 新余市| 凤山市| 开江县| 江川县| 绥棱县| 林口县| 合肥市| 峨山| 修文县| 翁源县| 顺义区| 布拖县|