我们都知道这个问题:我们想调试打印我们的应用程序,但聊天中的信息只是一团糟。它们没有格式化,很难得到一个概览....,这实在是不好玩。这就是为什么我将向你介绍 logger 包,它正好解决了这个问题。让我们开始吧!
注意:Logger 可能如下所示:
安装
创建应用程序后我们要做的第一件事就是添加logger。为此,我们将使用命令 dart pub add logger
。您应该熟悉这些命令,否则,我建议您再次查看 Flutter 的基础知识。
还有一个叫 logger_flutter
的包,如果你使用Flutter,就可以使用它。如果你安装了这个,你可以摇晃你的手机,它将在手机上显示控制台。你可以用 flutter pub add logger_flutter
来安装它。你手机上的控制台可能看起来像这样:
基础
首先,你必须创建一个 logger 变量。如果你使用像Riverpod这样的包,你可以把它们存储在一个提供者中,以便在整个应用程序中访问它们(在这里学习Riverpod)
在这里,我们已经有了许多关于日志程序外观的选项:
现在我们想在控制台中显示一些东西。有多个日志级别,我将在此处列出:
深入了解和高级用法
我们来谈谈 LogFilter
、LogPrinter
和 LogOutput
。它们用于更多地定制您对日志的体验:
LogFilter
LogFilter 决定应该显示哪些日志事件,哪些不显示。默认设置为 DevelopmentFilter
,在调试模式下显示所有 level >= Logger.level
的日志,但在发布模式下,所有日志都将被忽略。当然,你可以创建你自己的 LogFilter
。为此,您必须创建一个扩展 LogFilter
的类并创建一个名为 shouldLog
的函数。
LogPrinter
LogPrinter
创建并格式化输出,然后将其发送到 LogOutput
(我们将在下一章讨论 LogOutput)。当然,你可以实现自己的 LogPrinter
:
本软件包的作者说明:
如果您创建了一个可能对其他人有帮助的酷 LogPrinter,请随时打开拉取请求。 :)
LogOutput
LogOutput
负责将日志行发送到所需的目的地。它的默认实现 ConsoleOutput
将每一行发送到系统控制台。有可能,将来 LogOutput
可以将文件发送到 firebase
或 Logcat
。
进一步阅读和结论
在本文中,您了解了控制台管理器“logger”的基础知识。您已经看到了它的易用性以及控制台输出的美观程度。
如果您使用 Freezed、Isar 或 Flutter Hooks 等软件包,您可以充分发挥 logger 的全部功能。如果你想学习这些附加功能,我有关于它们的完整教程。在这里查看它们。
在接下来的几篇文章中,我将介绍更多有点复杂的包,并对它们进行解释。如果你不想错过这些,我建议你关注我。我尽力写出最简单的教程,让大家都能理解。如果你欣赏这项工作,如果你能支持这个高质量的内容,并给我一些掌声,我将非常感激!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。