use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter};
pub fn init() {
let filter =
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("shell_tunnel=info"));
tracing_subscriber::registry()
.with(filter)
.with(
tracing_subscriber::fmt::layer()
.compact()
.with_writer(std::io::stderr),
)
.init();
}
pub fn try_init() -> Result<(), tracing_subscriber::util::TryInitError> {
let filter =
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("shell_tunnel=info"));
tracing_subscriber::registry()
.with(filter)
.with(
tracing_subscriber::fmt::layer()
.compact()
.with_writer(std::io::stderr),
)
.try_init()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_try_init_idempotent() {
let _ = try_init();
let _ = try_init();
}
#[test]
fn test_logging_works() {
let _ = try_init();
tracing::info!("test info message");
tracing::debug!("test debug message");
tracing::warn!("test warn message");
tracing::error!("test error message");
}
}