国产探花免费观看_亚洲丰满少妇自慰呻吟_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/ (王健:最佳日志實踐)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 循化| 芜湖市| 宁晋县| 和顺县| 平湖市| 静海县| 都江堰市| 平南县| 苏尼特右旗| 庆安县| 延长县| 寿宁县| 台山市| 弥勒县| 孝感市| 炎陵县| 宝兴县| 阜南县| 万安县| 北票市| 永嘉县| 盐山县| 石泉县| 珠海市| 牡丹江市| 和政县| 白城市| 西安市| 瑞金市| 康马县| 甘孜县| 双江| 瑞昌市| 巧家县| 房产| 宽城| 临澧县| 德清县| 华阴市| 永泰县| 黄山市|