起因
Crequency 团队的 Flutter 项目 KitX Mobile 之前一直使用 f_logs 作为日志库, 但是这个库存在如下问题:
- 太久没更新了, 依赖了一些旧组件, 导致有些其他包无法升级
- 在本地使用数据库来记录日志, 这实在不符合我心中对于一个轻量级日志框架的定位
于是, 我和小伙伴 Cranyozen 决定开发一个新的 dart 日志库 (纯 dart package, 标题带 flutter 主要是为了蹭流量)
项目基本情况
- 项目开源地址: Cranyozen/cherrilog
- pub.dev 地址: cherrilog
使用
下面先贴一张效果图
当然, 消息模板
/ 颜色
/ 日志等级
/ 日志等级缩略词
... 等等元素都可以自定义
准备工作
首先引入包:
dart
import 'package:cherrilog/cherrilog.dart';
初始化代码如下:
dart
CherriLog.init(
options: CherriOptions()
..logLevelRange = CherriLogLevelRanges.all
..useBuffer = false,
).logTo(CherriConsole());
如果要输出到文件系统而不是控制台, 可以改成如下代码:
dart
CherriLog.init(
options: CherriOptions()
..logLevelRange = CherriLogLevelRanges.all
..useBuffer = false,
).logTo(CherriFile());
上面的代码通过 CherriLog.init
方法传入日志库全局配置, logTo
方法传入一个 CherriLogger
对象并使用该对象来具体地输出日志
目前已有如下 logger:
CherriConsole
CherriFile
在做完准备工作之后, 就可以开始正式使用了 !
正式使用
在 package:cherrilog/wrapper.dart
中, 我们包装了一系列静态日志方法, 这样就可以避免每次都要调用 CherriLog.log
方法
dart
debug('You are doing something right');
info('You are doing something');
warning('You are doing something wrong');
error('You can not shutdown power');
fatal('The power is off');
是的, 你可以直接使用 debug
/ info
/ warning
/ error
/ fatal
来打印日志
贡献
项目目前还在早期开发阶段, 输出到文件的功能也尚未合并到主线
掘金社区的 flutter 大佬多, 如果哪里写的不好的, 还望大佬们能海涵, 如果能指出或是给仓库开个 issue 就更好了
我们也非常希望能有大佬开 pr 来普渡广大 dart / flutter 开发者
感谢