mirror of
https://github.com/containers/youki
synced 2024-05-21 23:16:09 +02:00
80f1f36ae9
* Move individual rust-oci-tests components in the tests dir We can use several things from test_framework and even integration_test for additional tests such as podman rootless and wasm tests Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com> * fix scripts and docs for the new dir structure Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com> --------- Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
29 lines
866 B
Rust
29 lines
866 B
Rust
use anyhow::{Context, Result};
|
|
use std::borrow::Cow;
|
|
use std::str::FromStr;
|
|
use tracing::metadata::LevelFilter;
|
|
|
|
const LOG_LEVEL_ENV_NAME: &str = "YOUKI_INTEGRATION_LOG_LEVEL";
|
|
|
|
/// Initialize the logger, must be called before accessing the logger
|
|
/// Multiple parts might call this at once, but the actual initialization
|
|
/// is done only once due to use of OnceCell
|
|
pub fn init(debug: bool) -> Result<()> {
|
|
let level = detect_log_level(debug).context("failed to parse log level")?;
|
|
tracing_subscriber::fmt().with_max_level(level).init();
|
|
|
|
Ok(())
|
|
}
|
|
|
|
fn detect_log_level(is_debug: bool) -> Result<LevelFilter> {
|
|
let filter: Cow<str> = if is_debug {
|
|
"debug".into()
|
|
} else if let Ok(level) = std::env::var(LOG_LEVEL_ENV_NAME) {
|
|
level.into()
|
|
} else {
|
|
"off".into()
|
|
};
|
|
|
|
Ok(LevelFilter::from_str(filter.as_ref())?)
|
|
}
|