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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
use super::*;
/*#[test]
fn filters_span_scopes() {
let (debug_layer, debug_handle) = layer::named("debug")
.enter(span::mock().at_level(Level::DEBUG))
.enter(span::mock().at_level(Level::INFO))
.enter(span::mock().at_level(Level::WARN))
.enter(span::mock().at_level(Level::ERROR))
.event(event::msg("hello world").in_scope(vec![
span::mock().at_level(Level::ERROR),
span::mock().at_level(Level::WARN),
span::mock().at_level(Level::INFO),
span::mock().at_level(Level::DEBUG),
]))
.exit(span::mock().at_level(Level::ERROR))
.exit(span::mock().at_level(Level::WARN))
.exit(span::mock().at_level(Level::INFO))
.exit(span::mock().at_level(Level::DEBUG))
.done()
.run_with_handle();
let (info_layer, info_handle) = layer::named("info")
.enter(span::mock().at_level(Level::INFO))
.enter(span::mock().at_level(Level::WARN))
.enter(span::mock().at_level(Level::ERROR))
.event(event::msg("hello world").in_scope(vec![
span::mock().at_level(Level::ERROR),
span::mock().at_level(Level::WARN),
span::mock().at_level(Level::INFO),
]))
.exit(span::mock().at_level(Level::ERROR))
.exit(span::mock().at_level(Level::WARN))
.exit(span::mock().at_level(Level::INFO))
.done()
.run_with_handle();
let (warn_layer, warn_handle) = layer::named("warn")
.enter(span::mock().at_level(Level::WARN))
.enter(span::mock().at_level(Level::ERROR))
.event(event::msg("hello world").in_scope(vec![
span::mock().at_level(Level::ERROR),
span::mock().at_level(Level::WARN),
]))
.exit(span::mock().at_level(Level::ERROR))
.exit(span::mock().at_level(Level::WARN))
.done()
.run_with_handle();
let _subscriber = tracing_subscriber::registry()
.with(debug_layer.with_filter(LevelFilter::DEBUG))
.with(info_layer.with_filter(LevelFilter::INFO))
.with(warn_layer.with_filter(LevelFilter::WARN))
.set_default();
{
let _trace = tracing::trace_span!("my_span").entered();
let _debug = tracing::debug_span!("my_span").entered();
let _info = tracing::info_span!("my_span").entered();
let _warn = tracing::warn_span!("my_span").entered();
let _error = tracing::error_span!("my_span").entered();
tracing::error!("hello world");
}
debug_handle.assert_finished();
info_handle.assert_finished();
warn_handle.assert_finished();
}
#[test]
fn filters_interleaved_span_scopes() {
fn target_layer(target: &'static str) -> (ExpectLayer, subscriber::MockHandle) {
layer::named(format!("target_{}", target))
.enter(span::mock().with_target(target))
.enter(span::mock().with_target(target))
.event(event::msg("hello world").in_scope(vec![
span::mock().with_target(target),
span::mock().with_target(target),
]))
.event(
event::msg("hello to my target")
.in_scope(vec![
span::mock().with_target(target),
span::mock().with_target(target),
])
.with_target(target),
)
.exit(span::mock().with_target(target))
.exit(span::mock().with_target(target))
.done()
.run_with_handle()
}
let (a_layer, a_handle) = target_layer("a");
let (b_layer, b_handle) = target_layer("b");
let (all_layer, all_handle) = layer::named("all")
.enter(span::mock().with_target("b"))
.enter(span::mock().with_target("a"))
.event(event::msg("hello world").in_scope(vec![
span::mock().with_target("a"),
span::mock().with_target("b"),
]))
.exit(span::mock().with_target("a"))
.exit(span::mock().with_target("b"))
.done()
.run_with_handle();
let _subscriber = tracing_subscriber::registry()
.with(all_layer.with_filter(LevelFilter::INFO))
.with(a_layer.with_filter(filter::filter_fn(|meta| {
let target = meta.target();
target == "a" || target == module_path!()
})))
.with(b_layer.with_filter(filter::filter_fn(|meta| {
let target = meta.target();
target == "b" || target == module_path!()
})))
.set_default();
{
let _a1 = tracing::trace_span!(target: "a", "a/trace").entered();
let _b1 = tracing::info_span!(target: "b", "b/info").entered();
let _a2 = tracing::info_span!(target: "a", "a/info").entered();
let _b2 = tracing::trace_span!(target: "b", "b/trace").entered();
tracing::info!("hello world");
tracing::debug!(target: "a", "hello to my target");
tracing::debug!(target: "b", "hello to my target");
}
a_handle.assert_finished();
b_handle.assert_finished();
all_handle.assert_finished();
}*/
|