Skip to main content

messaging_thread_pool/
global_test_scope.rs

1use tracing::{Dispatch, metadata::LevelFilter};
2use tracing_subscriber::FmtSubscriber;
3
4/// A trace helper used in the examples
5pub fn global_test_scope(filter: LevelFilter) {
6    let subscriber = FmtSubscriber::builder()
7        .with_thread_ids(true)
8        .with_max_level(filter)
9        // completes the builder.
10        .finish();
11    let dispatcher = Dispatch::new(subscriber);
12    tracing::dispatcher::set_global_default(dispatcher).unwrap();
13}
14
15/// A trace helper used in the examples that scopes the trace to the provided closure
16pub fn test_scope(filter: LevelFilter, enclosed_function: fn() -> ()) {
17    let subscriber = FmtSubscriber::builder()
18        // all spans/events with a level higher than LevelFilter
19        // will be written to stdout.
20        .with_max_level(filter)
21        //.without_time()
22        // completes the builder.
23        .finish();
24
25    let dispatcher = Dispatch::new(subscriber);
26
27    tracing::dispatcher::with_default(&dispatcher, || {
28        // Any trace events generated in this closure or by functions it calls
29        // will be collected by `my_subscriber`.
30        enclosed_function()
31    });
32}