Журналювання

Ви повинні використовувати крейт log для автоматичної реєстрації в logcat (на пристрої) або stdout (на хості):

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. use log::{debug, error, info}; /// Реєструє привітання. fn main() { logger::init( logger::Config::default() .with_tag_on_device("rust") .with_max_level(log::LevelFilter::Trace), ); debug!("Запуск програми."); info!("Справи йдуть добре."); error!("Щось пішло не так!"); }

Створіть, завантажте і запустіть бінарний файл на своєму пристрої:

m hello_rust_logs adb push "$ANDROID_PRODUCT_OUT/system/bin/hello_rust_logs" /data/local/tmp adb shell /data/local/tmp/hello_rust_logs

Журнали відображаються в 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!

Speaker Notes

  • Реалізація логгера у liblogger потрібна лише у фінальній версії, якщо ви логіруєте з бібліотеки, вам знадобиться лише фасадний крейтlog.