Logger 是一款 Android 平臺上的簡單、優雅、強大的開源日志庫。
這里是全局的 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
對單個 Log 的配置,如下:
TAG:
Logger.init("mytag");Logger.t("mytag").d("hello");methodCount:
Logger.init().methodCount(1);Logger.t(1).d("hello");ERROR:系統中發生了非常嚴重的問題,導致業務不正常服務,必須馬上進行處理。
WARN:預期會發生的,并且已經有了其他的處理流程,處理過程可以繼續。
INFO:重要的業務處理已經結束。如:處理機票預訂的系統,對每一張票要有且只有一條INFO信息描述 “[Who] booked ticket from [Where] to [Where]”;另外顯著改變應用狀態的每一個 action,如數據更新,外部系統請求。
DEBUG:開發人員使用,該級別日志的主要作用是對系統每一步的運行狀態進行精確的記錄。通過該種日志,可以查看某一個操作每一步的執 行過程,可以準確定位是何種操作,何種參數,何種順序導致了某種錯誤的發生。
VERBOSE:非常具體的信息,只能限于開發調試使用,不應該編譯進產品中。
表示一個進行中的過程用 … 結尾:
Starting a process…
表示錯誤用 ! 結尾:
The name has more than 1 record!
正常語句用 . 結尾, 例:
Received an example event.
有些函數可能會周期性地被調用,如果有日志的話會打印的非常多。所以要求:
將此類函數的正常日志信息打到debug里面盡量去掉不重要信息,保留到最多一行為宜將你認為重要但不是錯誤的信息打到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/ (王健:最佳日志實踐)
新聞熱點
疑難解答