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);
});