commit | ca16f45971d4ca03b2baf128901ca1ce99cefa58 | [log] [tgz] |
---|---|---|
author | David LeGare <legare@google.com> | Tue May 24 05:44:07 2022 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Tue May 24 05:44:07 2022 +0000 |
tree | 23605f728d6720a7f4685618635e382fba497575 | |
parent | 1fdb098e338339b0dc2c7ad82d35f96f47f5a8b7 [diff] | |
parent | 0053a92612165ba06b4980ee881563ea2544b419 [diff] |
Upgrade rust/crates/android_logger to 0.11.0 am: 97855c2480 am: 5719d62a2f am: 94464a8fc5 am: 24d35e36d5 am: 0053a92612 Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/android_logger/+/2072330 Change-Id: I05c8c9074e751ddf06d58ccb58f7ea8b0a6562bf Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This library is a drop-in replacement for env_logger
. Instead, it outputs messages to android's logcat.
This only works on Android and requires linking to log
which is only available under android. With Cargo, it is possible to conditionally require this library:
[target.'cfg(target_os = "android")'.dependencies] android_logger = "0.11"
Example of initialization on activity creation, with log configuration:
#[macro_use] extern crate log; extern crate android_logger; use log::Level; use android_logger::{Config,FilterBuilder}; fn native_activity_create() { android_logger::init_once( Config::default() .with_min_level(Level::Trace) // limit log level .with_tag("mytag") // logs will show under mytag tag .with_filter( // configure messages for specific crate FilterBuilder::new() .parse("debug,hello::crate=error") .build()) ); trace!("this is a verbose {}", "message"); error!("this is printed by default"); }
To allow all logs, use the default configuration with min level Trace:
#[macro_use] extern crate log; extern crate android_logger; use log::Level; use android_logger::Config; fn native_activity_create() { android_logger::init_once( Config::default().with_min_level(Level::Trace)); }
There is a caveat that this library can only be initialized once (hence the init_once
function name). However, Android native activity can be re-created every time the screen is rotated, resulting in multiple initialization calls. Therefore this library will only log a warning for subsequent init_once
calls.
This library ensures that logged messages do not overflow Android log message limits by efficiently splitting messages into chunks.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.