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
31
32
33
34
35
36
37
//! `prima_tracing` provide an handy way for configuring the [`tracing`] crate with
//! support for JSON output formatter and integration with opentelemetry
//! # Usage
//!
//! ```rust
//!
//! use prima_tracing::{builder, configure_subscriber, Country, Environment, init_subscriber};
//! # #[cfg(not(feature = "traces"))]
//! # {
//! let subscriber = configure_subscriber(
//!   builder("ping")
//!     .with_country(Country::Common)
//!     .with_env(Environment::Dev)
//!     .build()
//! );
//!
//! let _guard = init_subscriber(subscriber);
//! # }
//! ```

mod config;

mod subscriber;

#[cfg(feature = "json-logger")]
pub mod json;
#[cfg(feature = "traces")]
pub mod layer;
#[cfg(feature = "traces")]
pub mod telemetry;

pub use crate::config::{
    builder, Country, Environment, EnvironmentParseError, SubscriberConfig, SubscriberConfigBuilder,
};
pub use crate::subscriber::{
    configure_subscriber, init_subscriber, ContextInfo, EventFormatter, Tracing, Uninstall,
};