add selective log handle reload

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk 2024-07-11 00:42:49 +00:00
parent 0023b09f5b
commit 160f48043e
4 changed files with 21 additions and 8 deletions

View file

@ -45,12 +45,13 @@ impl LogLevelReloadHandles {
.insert(name.into(), handle);
}
pub fn reload(&self, new_value: &EnvFilter) -> Result<()> {
pub fn reload(&self, new_value: &EnvFilter, names: Option<&[&str]>) -> Result<()> {
self.handles
.lock()
.expect("locked")
.values()
.for_each(|handle| {
.iter()
.filter(|(name, _)| names.map_or(false, |names| names.contains(&name.as_str())))
.for_each(|(_, handle)| {
_ = handle.reload(new_value.clone()).or_else(error::else_log);
});

View file

@ -18,7 +18,7 @@ impl Suppress {
server
.log
.reload
.reload(suppress)
.reload(suppress, Some(&["console"]))
.expect("log filter reloaded");
Self {
server: server.clone(),
@ -32,7 +32,7 @@ impl Drop for Suppress {
self.server
.log
.reload
.reload(&self.restore)
.reload(&self.restore, Some(&["console"]))
.expect("log filter reloaded");
}
}