Skip to content

Commit d27e7cc

Browse files
author
Jonathan Woollett-Light
committed
feat: EnvFilter
Add the ` EnvFilter` layer to support additional filtering at compile-time. Signed-off-by: Jonathan Woollett-Light <jcawl@amazon.co.uk>
1 parent ccf2780 commit d27e7cc

File tree

3 files changed

+35
-6
lines changed

3 files changed

+35
-6
lines changed

Cargo.lock

Lines changed: 23 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/vmm/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ vm-allocator = "0.1.0"
3030
vm-fdt = "0.2.0"
3131
vm-superio = "0.7.0"
3232
tracing = { git = "https://github.com/tokio-rs/tracing", rev = "27f688efb72316a26f3ec1f952c82626692c08ff", features = ["attributes"] }
33-
tracing-subscriber = { git = "https://github.com/tokio-rs/tracing", rev = "27f688efb72316a26f3ec1f952c82626692c08ff" }
33+
tracing-subscriber = { git = "https://github.com/tokio-rs/tracing", rev = "27f688efb72316a26f3ec1f952c82626692c08ff", features = ["env-filter"] }
3434
log = { version = "0.4.17", features = ["serde"] }
3535

3636
dumbo = { path = "../dumbo" }

src/vmm/src/vmm_config/mod.rs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use libc::O_NONBLOCK;
1616
use rate_limiter::{BucketUpdate, RateLimiter, TokenBucket};
1717
use serde::{Deserialize, Serialize};
1818
use tracing::{Collect, Event};
19-
use tracing_subscriber::filter::LevelFilter;
19+
use tracing_subscriber::filter::{EnvFilter, LevelFilter};
2020
use tracing_subscriber::fmt::format::{self, FormatEvent, FormatFields};
2121
use tracing_subscriber::fmt::writer::BoxMakeWriter;
2222
use tracing_subscriber::fmt::FmtContext;
@@ -312,7 +312,8 @@ pub enum UpdateLoggerError {
312312
Filter(ReloadError),
313313
}
314314

315-
type FmtInner = Layered<tracing_subscriber::reload::Subscriber<LevelFilter>, Registry>;
315+
type ReloadSubscriber<S> = tracing_subscriber::reload::Subscriber<S>;
316+
type FmtInner = Layered<ReloadSubscriber<LevelFilter>, Layered<EnvFilter, Registry>>;
316317
type FmtType = FmtSubscriber<FmtInner, format::DefaultFields, LoggerFormatter, BoxMakeWriter>;
317318

318319
/// Handles that allow re-configuring the logger.
@@ -331,7 +332,7 @@ impl LoggerConfig {
331332
let (filter, filter_handle) = {
332333
let level = tracing::Level::from(self.level.unwrap_or_default());
333334
let filter_subscriber = LevelFilter::from_level(level);
334-
tracing_subscriber::reload::Subscriber::new(filter_subscriber)
335+
ReloadSubscriber::new(filter_subscriber)
335336
};
336337

337338
// Setup fmt layer
@@ -363,10 +364,16 @@ impl LoggerConfig {
363364
self.show_log_origin.unwrap_or_default(),
364365
))
365366
.with_writer(fmt_writer);
366-
tracing_subscriber::reload::Subscriber::new(fmt_subscriber)
367+
ReloadSubscriber::new(fmt_subscriber)
367368
};
368369

370+
// Setup the env layer
371+
let env = EnvFilter::builder()
372+
.with_default_directive(LevelFilter::TRACE.into())
373+
.from_env_lossy();
374+
369375
Registry::default()
376+
.with(env)
370377
.with(filter)
371378
.with(fmt)
372379
.try_init()

0 commit comments

Comments
 (0)