Logging
You should use the log crate to automatically log to logcat (on-device) or stdout (on-host):
hello_rust_logs/Android.bp:
rust_binary {name: "hello_rust_logs",crate_name: "hello_rust_logs",srcs: ["src/main.rs"],rustlibs: ["liblog_rust","liblogger",],host_supported: true,}
hello_rust_logs/src/main.rs:
//! Rust logging demo.use log::{debug, error, info};/// Logs a greeting.fn main() {logger::init(logger::Config::default().with_tag_on_device("rust").with_max_level(log::LevelFilter::Trace),);debug!("Starting program.");info!("Things are going fine.");error!("Something went wrong!");}
Build, push, and run the binary on your device:
m hello_rust_logsadb push "$ANDROID_PRODUCT_OUT/system/bin/hello_rust_logs" /data/local/tmpadb shell /data/local/tmp/hello_rust_logs
The logs show up in adb logcat:
adb logcat -s rust
09-08 08:38:32.454 2420 2420 D rust: hello_rust_logs: Starting program.09-08 08:38:32.454 2420 2420 I rust: hello_rust_logs: Things are going fine.09-08 08:38:32.454 2420 2420 E rust: hello_rust_logs: Something went wrong!
- The logger implementation in
libloggeris only needed in the final binary, if you’re logging from a library you only need thelogfacade crate.