一 概述
在我們日常開發過程中 ,肯定少不了與Log打交道,在Android中有 logger 以及 timber 這樣的列印工具,可是在 Flutter 中原始的列印 print 只能有一種顏色,並沒有像 debug、error等好幾種顏色,除錯起來也麻煩,所以仿照 logger 寫了一個自己的 flutter_logger,簡單的日誌框架
二 優點
- 有Verbose、Debug、Info、Warn 和 Error 五中日誌以及顏色
- 列印json資料時更美觀易讀
- 可以定製你自己喜歡的level顏色值
- 上線時,一鍵關閉日誌輸出
三 使用
2.1 匯入
# 現在最新的版本是 2.0.1
flutter_easylogger: ^{LAST_VERSION}
複製程式碼
2.2 簡單使用
不帶有 tag 的
Logger.v("hello world");
Logger.d("hello world");
Logger.i("hello world");
Logger.w("hello world");
Logger.e("hello world");
var json = "{\"name\":\"tom\",\"age\":\"18\"}";
Logger.json(json);
複製程式碼
帶有tag的
Logger.d("hello",tag:"TAG");
複製程式碼
2.3 定製level顏色
使用之前可以設定level的顏色
Logger.levelVerbose = 247;
Logger.levelDebug = 26;
Logger.levelInfo = 28;
Logger.levelWarn = 3;
Logger.levelError = 9;
複製程式碼
設定的顏色值 在 0 - 255 之間,具體顏色參照下圖
2.3 關閉日誌
Logger.enable = false;
複製程式碼
四 原理 ANSI
當我們使用 print 列印的時候,控制檯基本上是一種顏色,有沒有一種可以使控制檯改變顏色的?答案是有的,那就是 ANSI ,可以修改控制檯的顏色值。
4.1研究
4.1.1 更改顏色值,比如我們列印下面的程式碼
print('\x1B[35m 紫色hello world \x1B[0m');
print('\x1B[31m 紅色hello world \x1B[0m');
複製程式碼
4.1.2 加粗
print('\x1B[1m 粗體\x1B[0m');
print('\x1B[1;31m 粗紅色hello world \x1B[0m');
print('正常');
複製程式碼
4.1.3 下劃線
print('\x1B[4m下劃線\x1B[0m');
複製程式碼
4.2 google開源的ansicolor-dart
當然了,如果你對 ANSI 足夠 瞭解,你直接使用 ANSI 即可,當然 google 也為 dart 封裝了一個 ansi 的使用,我們可以根據這個來控制我們的控制檯顏色