Skip to content

Commit 5521955

Browse files
committed
split output between stdout and stderr
1 parent d704406 commit 5521955

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

examples/examples/layer.rs

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use std::io;
12
use std::marker::PhantomData;
23
use tracing::{debug, info, instrument, warn, Level, Metadata, Subscriber};
34
use tracing_subscriber::{
@@ -33,26 +34,34 @@ where
3334
}
3435

3536
fn main() {
36-
let warn = FilterFn::new(|metadata, _| metadata.level() <= &Level::WARN);
37-
let debug = FilterFn::new(|metadata, _| metadata.level() >= &Level::DEBUG);
37+
let err = FilterFn::new(|metadata, _| {
38+
metadata.level() == &Level::WARN || metadata.level() == &Level::ERROR
39+
});
40+
let info = FilterFn::new(|metadata, _| metadata.level() <= &Level::INFO);
3841

39-
let warn = fmt::Layer::default().with_filter(warn);
40-
let debug = fmt::Layer::default().with_filter(debug);
42+
let err = fmt::Layer::builder()
43+
.with_writer(io::stderr)
44+
.finish()
45+
.with_filter(err);
46+
let info = fmt::Layer::builder()
47+
.with_writer(io::stdout)
48+
.finish()
49+
.with_filter(info);
4150

42-
let subscriber = warn.and_then(debug).with_subscriber(Registry::default());
51+
let subscriber = info.and_then(err).with_subscriber(Registry::default());
4352
tracing::subscriber::set_global_default(subscriber).expect("Unable to set global subscriber");
4453
call_one();
4554
}
4655

47-
#[instrument(level = "TRACE")]
56+
#[instrument]
4857
fn call_one() {
49-
warn!("This is the warning level");
50-
info!("This should be ignored");
58+
debug!("This is ignored!");
59+
info!("logged at info");
5160
call_two();
5261
}
5362

54-
#[instrument(level = "TRACE")]
63+
#[instrument]
5564
fn call_two() {
56-
debug!("This is the debug level!");
57-
info!("This should be ignored");
65+
warn!("This is the warning level");
66+
info!("logged at info");
5867
}

0 commit comments

Comments
 (0)