Flutter中的Logger
一 概述
在我们日常开发过程中 ,肯定少不了与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 的使用,我们可以根据这个来控制我们的控制台颜色
五 项目地址
转载自:https://juejin.cn/post/6984316911437742117