Flutter 中的 log
本文最后更新于 2021年4月4日 晚上
在 Flutter 的神奇世界中, 有一个非常实用的功能, 即通过 flutter log
命令可以获取真机上日志信息, 而且获取的是所有 flutter 应用的日志, 但这样可能造成自己日志打印的内容被其他人看到. 所以这里介绍一种使用 debugPrint
替换 print
以使发布时的 log 和普通 log 分离的办法.
Flutter log
参考原文详见这个链接, 以下只是简略汇总.
另外这里有一篇比较好的文章介绍如何在 Flutter 中模拟 android 的 flavor 或 iOS 的 scheme.
可以根据当前 APP 执行环境的不同来处理 print
. 而方法就是使用 debugPrint
来替换 print
使用. 由于 debugPrint
的功能可以通过向其赋值一个 DebugPrintCallback
来自定义, 故可以像下面这样定义它的功能:
1 |
|
而在 flutter 中, 可以使用不同的 main 文件来表示不同环境下的入口. 比如 main.dart
是生产环境的 main. 建立一个 main_dev.dart
实现 debug 环境下的 main. 故两个 main 文件中的 debugPrint 就可以使用不同的实现来达到目的.
(方法是死的人是活的, 也可以将 main.dart
作为开发环境下的 main, 而建立一个 main_publish.dart
作为生产环境下的 main, 打包的时候只需要指定正确的 main 文件即可.)
main.dart
:
1 |
|
main_dev.dart
:
1 |
|
这样就满足了开发环境下的 log 打印需求, 也保证了生产环境下 log 不会被意外打印, 但前提是需要把 APP 里面的 print
都替换为 debugPrint
.