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

Ви повинні використовувати крейт 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!
  • Реалізація логгера у liblogger потрібна лише у фінальній версії, якщо ви логіруєте з бібліотеки, вам знадобиться лише фасадний крейтlog.