2022-02-05 00:40:17 +01:00
|
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
|
|
2023-02-24 17:41:52 +01:00
|
|
|
use std::str::FromStr;
|
|
|
|
|
|
2022-02-05 00:40:17 +01:00
|
|
|
use anyhow::Result;
|
|
|
|
|
|
2023-02-24 17:41:52 +01:00
|
|
|
use tracing::{debug, info, warn};
|
|
|
|
|
use tracing_journald as journald;
|
|
|
|
|
use tracing_subscriber::{filter::Directive, fmt, prelude::*, EnvFilter};
|
2022-02-05 00:40:17 +01:00
|
|
|
|
2023-02-24 17:41:52 +01:00
|
|
|
pub fn init_logger() -> Result<()> {
|
2023-02-27 20:15:42 -05:00
|
|
|
let level = if cfg!(debug_assertions) {
|
2023-02-27 12:15:31 -08:00
|
|
|
"debug"
|
|
|
|
|
} else {
|
2023-02-27 20:15:42 -05:00
|
|
|
"warn"
|
2023-02-27 12:15:31 -08:00
|
|
|
};
|
2023-02-24 17:41:52 +01:00
|
|
|
let filter = EnvFilter::try_from_default_env()
|
|
|
|
|
.unwrap_or_else(|_| {
|
|
|
|
|
EnvFilter::new(if cfg!(debug_assertions) {
|
2023-03-03 19:34:41 +01:00
|
|
|
"info"
|
2023-01-16 15:12:25 +01:00
|
|
|
} else {
|
2023-03-03 19:34:41 +01:00
|
|
|
"warn"
|
2023-02-24 17:41:52 +01:00
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.add_directive(Directive::from_str("cosmic_text=error").unwrap())
|
2023-02-27 20:15:42 -05:00
|
|
|
.add_directive(Directive::from_str(&format!("smithay={level}")).unwrap())
|
|
|
|
|
.add_directive(Directive::from_str(&format!("cosmic_comp={level}")).unwrap());
|
2023-02-24 17:41:52 +01:00
|
|
|
|
|
|
|
|
let fmt_layer = fmt::layer().compact();
|
|
|
|
|
|
|
|
|
|
match journald::layer() {
|
|
|
|
|
Ok(journald_layer) => tracing_subscriber::registry()
|
|
|
|
|
.with(fmt_layer)
|
|
|
|
|
.with(journald_layer)
|
|
|
|
|
.with(filter)
|
|
|
|
|
.init(),
|
|
|
|
|
Err(err) => {
|
|
|
|
|
tracing_subscriber::registry()
|
|
|
|
|
.with(fmt_layer)
|
|
|
|
|
.with(filter)
|
|
|
|
|
.init();
|
|
|
|
|
warn!(?err, "Failed to init journald logging.");
|
|
|
|
|
}
|
|
|
|
|
};
|
2023-01-13 11:50:48 -08:00
|
|
|
log_panics::init();
|
2022-02-05 00:40:17 +01:00
|
|
|
|
2023-02-24 17:41:52 +01:00
|
|
|
info!("Version: {}", std::env!("CARGO_PKG_VERSION"));
|
2022-02-05 00:40:17 +01:00
|
|
|
if cfg!(feature = "debug") {
|
2023-02-24 17:41:52 +01:00
|
|
|
debug!(
|
2022-02-05 00:40:17 +01:00
|
|
|
"Debug build ({})",
|
|
|
|
|
std::option_env!("GIT_HASH").unwrap_or("Unknown")
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-24 17:41:52 +01:00
|
|
|
Ok(())
|
2022-03-16 20:01:34 +01:00
|
|
|
}
|