如何将rust日志输出到android终端
如何将rust日志输出到android终端
唯你背景
在 Rust 中,使用 println!打印日志时,输出实际上是发送到标准输出(stdout),而 Android Logcat 专门用于处理和显示应用程序的日志信息,此环境下标准输出实现被重新定义。这意味着 Rust 日志输出不会出现在 Logcat 中。
android_logger直接与 Android 的日志系统集成,确保日志信息可以按预期出现在 Logcat 中。
配置
android_logger 使用如下
注意这里使用的是 android_logger0.11.0 版本,若使用最新版本可能需要做相关 api 调整。
cargo.toml 中增加如下依赖
1 | [dependencies] |
同时引入 log 的原因:
- log 是一个日志记录的抽象库,提供了一套统一的接口,用于记录日志消息(如 info!、warn!、error! 等)。而 android_logger 是 log 针对 android 平台的一种具体实现。
- 虽然 android_logger 本身依赖 log,你或许以为不必再额外引用 log,但实际上 android_logger 中类似 log::LevelFilter 和 log::Level::Debug 依然依赖 log 库。
初始化
1 |
|
注意此处 with_min_level 级别,若为 debug 则打印时最小打印级别必须是 debug 及以上,用 info 无法打印显示在android logcat 中。
使用
rust 文件使用如下
1 |
|
添加打印
1 | impl PlatformTextureWithProvider for BoxedPixelData { |
连接 android 设备执行 flutter run 后,logcat 日志输出如下:
1 | √ Built build\app\outputs\flutter-apk\app-debug.apk |
注意
因为每次运行都会重新编译库文件,没必要在 rust 中每次修改日志后执行 cargo clean。 直接运行对于平台支持命令(如 flutter 的话 flutter run)即可看到修改后日志生效输出,。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果