Gus Wynn e0b3f79ed9 subscriber: fix max_level_hint for empty Option/Vec Layer impls (#2195)
## Motivation

These are incorrect: currently, when you have a `None` layer, the `None`
hint it returns causes the default `TRACE` to win, which is inaccurate.
Similarly, `Vec` should default to `OFF` if it has no `Layer`s in it

## Solution

Change the default hints to `Some(OFF)`

Co-authored-by: Eliza Weisman <eliza@buoyant.io>
2022-07-01 10:08:17 -07:00

20 lines
597 B
Rust

#![cfg(feature = "registry")]
use tracing::level_filters::LevelFilter;
use tracing::Subscriber;
use tracing_subscriber::prelude::*;
#[test]
fn just_empty_vec() {
// Just a None means everything is off
let subscriber = tracing_subscriber::registry().with(Vec::<LevelFilter>::new());
assert_eq!(subscriber.max_level_hint(), Some(LevelFilter::OFF));
}
#[test]
fn layer_and_empty_vec() {
let subscriber = tracing_subscriber::registry()
.with(LevelFilter::INFO)
.with(Vec::<LevelFilter>::new());
assert_eq!(subscriber.max_level_hint(), Some(LevelFilter::INFO));
}