likes
comments
collection
share

Flutter中的Logger

作者站长头像
站长
· 阅读数 12

一 概述

在我们日常开发过程中 ,肯定少不了与Log打交道,在Android中有 logger 以及 timber 这样的打印工具,可是在 Flutter 中原始的打印 print 只能有一种颜色,并没有像 debug、error等好几种颜色,调试起来也麻烦,所以仿照 logger 写了一个自己的 flutter_logger,简单的日志框架

二 优点

  1. 有Verbose、Debug、Info、Warn 和 Error 五中日志以及颜色
  2. 打印json数据时更美观易读
  3. 可以定制你自己喜欢的level颜色值
  4. 上线时,一键关闭日志输出

三 使用

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);

Flutter中的Logger

带有tag的

Logger.d("hello",tag:"TAG");

Flutter中的Logger

2.3 定制level颜色

使用之前可以设置level的颜色

Logger.levelVerbose = 247;
Logger.levelDebug = 26;
Logger.levelInfo = 28;
Logger.levelWarn = 3;
Logger.levelError = 9;

设置的颜色值 在 0 - 255 之间,具体颜色参照下图 Flutter中的Logger

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');

Flutter中的Logger

4.1.2 加粗

print('\x1B[1m 粗体\x1B[0m');
print('\x1B[1;31m 粗红色hello world \x1B[0m');
print('正常');

Flutter中的Logger

4.1.3 下划线

print('\x1B[4m下划线\x1B[0m');

Flutter中的Logger

4.2 google开源的ansicolor-dart

当然了,如果你对 ANSI 足够 了解,你直接使用 ANSI 即可,当然 google 也为 dart 封装了一个 ansi 的使用,我们可以根据这个来控制我们的控制台颜色

项目地址