2024-06-13 02:15:51 +00:00
|
|
|
use std::sync::Arc;
|
|
|
|
|
|
|
|
|
|
use super::EnvFilter;
|
|
|
|
|
use crate::Server;
|
|
|
|
|
|
|
|
|
|
pub struct Suppress {
|
|
|
|
|
server: Arc<Server>,
|
|
|
|
|
restore: EnvFilter,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Suppress {
|
|
|
|
|
pub fn new(server: &Arc<Server>) -> Self {
|
2024-07-11 01:02:05 +00:00
|
|
|
let handle = "console";
|
2024-06-13 02:15:51 +00:00
|
|
|
let config = &server.config.log;
|
2024-07-11 01:02:05 +00:00
|
|
|
let suppress = EnvFilter::default();
|
|
|
|
|
let restore = server
|
|
|
|
|
.log
|
|
|
|
|
.reload
|
|
|
|
|
.current(handle)
|
|
|
|
|
.unwrap_or_else(|| EnvFilter::try_new(config).unwrap_or_default());
|
2024-06-13 02:15:51 +00:00
|
|
|
|
|
|
|
|
server
|
|
|
|
|
.log
|
|
|
|
|
.reload
|
2024-07-11 01:02:05 +00:00
|
|
|
.reload(&suppress, Some(&[handle]))
|
2024-06-13 02:15:51 +00:00
|
|
|
.expect("log filter reloaded");
|
2024-07-11 01:02:05 +00:00
|
|
|
|
2024-12-15 00:05:47 -05:00
|
|
|
Self { server: server.clone(), restore }
|
2024-06-13 02:15:51 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Drop for Suppress {
|
|
|
|
|
fn drop(&mut self) {
|
|
|
|
|
self.server
|
|
|
|
|
.log
|
|
|
|
|
.reload
|
2024-07-11 00:42:49 +00:00
|
|
|
.reload(&self.restore, Some(&["console"]))
|
2024-06-13 02:15:51 +00:00
|
|
|
.expect("log filter reloaded");
|
|
|
|
|
}
|
|
|
|
|
}
|