1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use tracing_subscriber::{fmt::format::Writer, layer::SubscriberExt, EnvFilter};

pub struct NoTime;

impl tracing_subscriber::fmt::time::FormatTime for NoTime {
  fn format_time(&self, _writer: &mut Writer<'_>) -> std::fmt::Result {
    Ok(())
  }
}

pub fn init() {
  let env_filter = EnvFilter::from_default_env();
  #[cfg(feature = "stackdriver")]
  {
    use tracing_subscriber::Registry;
    let stackdriver = tracing_stackdriver::layer();
    let subscriber = Registry::default().with(env_filter).with(stackdriver);
    tracing::subscriber::set_global_default(subscriber).expect("Can't set logger");
  }

  #[cfg(not(feature = "stackdriver"))]
  {
    use tracing_subscriber::util::SubscriberInitExt;
    let fmt = tracing_subscriber::fmt::layer().with_timer(NoTime);
    tracing_subscriber::registry()
      .with(fmt)
      .with(env_filter)
      .init();
  }
}