1use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter};
4
5pub fn init() {
15 let filter =
16 EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("shell_tunnel=info"));
17
18 tracing_subscriber::registry()
19 .with(filter)
20 .with(tracing_subscriber::fmt::layer().compact())
21 .init();
22}
23
24pub fn try_init() -> Result<(), tracing_subscriber::util::TryInitError> {
29 let filter =
30 EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("shell_tunnel=info"));
31
32 tracing_subscriber::registry()
33 .with(filter)
34 .with(tracing_subscriber::fmt::layer().compact())
35 .try_init()
36}
37
38#[cfg(test)]
39mod tests {
40 use super::*;
41
42 #[test]
43 fn test_try_init_idempotent() {
44 let _ = try_init();
46 let _ = try_init();
49 }
51
52 #[test]
53 fn test_logging_works() {
54 let _ = try_init();
56
57 tracing::info!("test info message");
58 tracing::debug!("test debug message");
59 tracing::warn!("test warn message");
60 tracing::error!("test error message");
61 }
63}