Flutter 上新日志库 - 简约/大气/易用/强大

起因

Crequency 团队的 Flutter 项目 KitX Mobile 之前一直使用 f_logs 作为日志库, 但是这个库存在如下问题:

  1. 太久没更新了, 依赖了一些旧组件, 导致有些其他包无法升级
  2. 在本地使用数据库来记录日志, 这实在不符合我心中对于一个轻量级日志框架的定位

于是, 我和小伙伴 Cranyozen 决定开发一个新的 dart 日志库 (纯 dart package, 标题带 flutter 主要是为了蹭流量)

项目基本情况

使用

下面先贴一张效果图

当然, 消息模板 / 颜色 / 日志等级 / 日志等级缩略词 ... 等等元素都可以自定义

准备工作

首先引入包:

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 开发者

感谢

相关推荐
子春一7 小时前
Flutter for OpenHarmony:形状拼图:基于路径几何与空间吸附的交互式拼图系统架构解析
flutter·系统架构
ujainu16 小时前
Flutter + OpenHarmony 游戏开发进阶:用户输入响应——GestureDetector 实现点击发射
flutter·游戏·openharmony
hudawei99616 小时前
TweenAnimationBuilder和AnimatedBuilder两种动画的比较
flutter·ui·动画·tweenanimation·animatedbuilder
ujainu16 小时前
Flutter + OpenHarmony 实现无限跑酷游戏开发实战—— 对象池化、性能优化与流畅控制
flutter·游戏·性能优化·openharmony·endless runner
ZH154558913117 小时前
Flutter for OpenHarmony Python学习助手实战:自动化脚本开发的实现
python·学习·flutter
晚烛19 小时前
CANN + 物理信息神经网络(PINNs):求解偏微分方程的新范式
javascript·人工智能·flutter·html·零售
一起养小猫19 小时前
Flutter for OpenHarmony 实战:扫雷游戏完整开发指南
flutter·harmonyos
晚烛20 小时前
CANN 赋能智慧医疗:构建合规、高效、可靠的医学影像 AI 推理系统
人工智能·flutter·零售
晚霞的不甘20 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
小哥Mark21 小时前
Flutter开发鸿蒙年味 + 实用实战应用|绿色烟花:电子烟花 + 手持烟花
flutter·华为·harmonyos