cosmic-comp/src/logger/mod.rs

58 lines
1.6 KiB
Rust
Raw Normal View History

2022-02-05 00:40:17 +01:00
// SPDX-License-Identifier: GPL-3.0-only
use std::str::FromStr;
2022-02-05 00:40:17 +01:00
use anyhow::Result;
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
pub fn init_logger() -> Result<()> {
let level = if cfg!(debug_assertions) {
2023-02-27 12:15:31 -08:00
"debug"
} else {
"warn"
2023-02-27 12:15:31 -08:00
};
let filter = EnvFilter::try_from_default_env()
.unwrap_or_else(|_| {
EnvFilter::new(if cfg!(debug_assertions) {
"info"
} else {
"warn"
})
})
.add_directive(Directive::from_str("cosmic_text=error").unwrap())
2023-03-09 19:24:00 +01:00
.add_directive(Directive::from_str("calloop=error").unwrap())
.add_directive(Directive::from_str(&format!("smithay={level}")).unwrap())
.add_directive(Directive::from_str(&format!("cosmic_comp={level}")).unwrap());
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.");
}
};
log_panics::init();
2022-02-05 00:40:17 +01:00
info!("Version: {}", std::env!("CARGO_PKG_VERSION"));
2022-02-05 00:40:17 +01:00
if cfg!(feature = "debug") {
debug!(
2022-02-05 00:40:17 +01:00
"Debug build ({})",
std::option_env!("GIT_HASH").unwrap_or("Unknown")
);
}
Ok(())
2022-03-16 20:01:34 +01:00
}