Skip to content

Commit 5f3abe1

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 <[email protected]>
1 parent 28ac83d commit 5f3abe1

File tree

3 files changed

+35
-6
lines changed

3 files changed

+35
-6
lines changed

Cargo.lock

+23-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/vmm/Cargo.toml

+1-1
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

+11-4
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;
@@ -309,7 +309,8 @@ pub enum UpdateLoggerError {
309309
Filter(ReloadError),
310310
}
311311

312-
type FmtInner = Layered<tracing_subscriber::reload::Subscriber<LevelFilter>, Registry>;
312+
type ReloadSubscriber<S> = tracing_subscriber::reload::Subscriber<S>;
313+
type FmtInner = Layered<ReloadSubscriber<LevelFilter>, Layered<EnvFilter, Registry>>;
313314
type FmtType = FmtSubscriber<FmtInner, format::DefaultFields, LoggerFormatter, BoxMakeWriter>;
314315

315316
/// Handles that allow re-configuring the logger.
@@ -328,7 +329,7 @@ impl LoggerConfig {
328329
let (filter, filter_handle) = {
329330
let level = tracing::Level::from(self.level.unwrap_or_default());
330331
let filter_subscriber = LevelFilter::from_level(level);
331-
tracing_subscriber::reload::Subscriber::new(filter_subscriber)
332+
ReloadSubscriber::new(filter_subscriber)
332333
};
333334

334335
// Setup fmt layer
@@ -359,10 +360,16 @@ impl LoggerConfig {
359360
self.show_log_origin.unwrap_or_default(),
360361
))
361362
.with_writer(fmt_writer);
362-
tracing_subscriber::reload::Subscriber::new(fmt_subscriber)
363+
ReloadSubscriber::new(fmt_subscriber)
363364
};
364365

366+
// Setup the env layer
367+
let env = EnvFilter::builder()
368+
.with_default_directive(LevelFilter::TRACE.into())
369+
.from_env_lossy();
370+
365371
Registry::default()
372+
.with(env)
366373
.with(filter)
367374
.with(fmt)
368375
.try_init()

0 commit comments

Comments
 (0)