Skip to content

Commit 01bef17

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 6d6f8eb commit 01bef17

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;
@@ -299,7 +299,8 @@ pub enum LoggerConfigError {
299299
Write(std::io::Error),
300300
}
301301

302-
type FmtInner = Layered<tracing_subscriber::reload::Subscriber<LevelFilter>, Registry>;
302+
type ReloadSubscriber<S> = tracing_subscriber::reload::Subscriber<S>;
303+
type FmtInner = Layered<ReloadSubscriber<LevelFilter>, Layered<EnvFilter, Registry>>;
303304
type FmtType = FmtSubscriber<FmtInner, format::DefaultFields, LoggerFormatter, BoxMakeWriter>;
304305

305306
/// Handles that allow re-configuring the logger.
@@ -318,7 +319,7 @@ impl LoggerConfig {
318319
let (filter, filter_handle) = {
319320
let level = tracing::Level::from(self.level.unwrap_or_default());
320321
let filter_subscriber = LevelFilter::from_level(level);
321-
tracing_subscriber::reload::Subscriber::new(filter_subscriber)
322+
ReloadSubscriber::new(filter_subscriber)
322323
};
323324

324325
// Setup fmt layer
@@ -350,10 +351,16 @@ impl LoggerConfig {
350351
self.show_log_origin.unwrap_or_default(),
351352
))
352353
.with_writer(fmt_writer);
353-
tracing_subscriber::reload::Subscriber::new(fmt_subscriber)
354+
ReloadSubscriber::new(fmt_subscriber)
354355
};
355356

357+
// Setup the env layer
358+
let env = EnvFilter::builder()
359+
.with_default_directive(LevelFilter::TRACE.into())
360+
.from_env_lossy();
361+
356362
Registry::default()
363+
.with(env)
357364
.with(filter)
358365
.with(fmt)
359366
.try_init()

0 commit comments

Comments
 (0)