mirror of
https://git.proxmox.com/git/proxmox
synced 2025-04-30 16:05:28 +00:00
log: factor out NoWorkerTask filter
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
6bdd07075d
commit
c99308ecfc
@ -1,11 +1,26 @@
|
|||||||
use tracing::{level_filters::LevelFilter, Level};
|
use tracing::level_filters::LevelFilter;
|
||||||
|
use tracing::Level;
|
||||||
|
use tracing::Metadata;
|
||||||
use tracing_log::{AsLog, LogTracer};
|
use tracing_log::{AsLog, LogTracer};
|
||||||
use tracing_subscriber::{filter::filter_fn, layer::SubscriberExt, Layer};
|
use tracing_subscriber::layer::Context;
|
||||||
|
use tracing_subscriber::layer::Filter;
|
||||||
|
use tracing_subscriber::layer::SubscriberExt;
|
||||||
|
use tracing_subscriber::Layer;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
get_env_variable, journald_or_stderr_layer, plain_stderr_layer,
|
get_env_variable, journald_or_stderr_layer, plain_stderr_layer,
|
||||||
pve_task_formatter::PveTaskFormatter, tasklog_layer::TasklogLayer, LogContext,
|
pve_task_formatter::PveTaskFormatter, tasklog_layer::TasklogLayer, LogContext,
|
||||||
};
|
};
|
||||||
|
///
|
||||||
|
/// Filter yielding `true` *outside* of worker tasks, *unless* the level is `ERROR`.
|
||||||
|
#[derive(Clone, Copy, Debug)]
|
||||||
|
pub struct NoWorkerTask;
|
||||||
|
|
||||||
|
impl<S> Filter<S> for NoWorkerTask {
|
||||||
|
fn enabled(&self, meta: &Metadata<'_>, _cx: &Context<'_, S>) -> bool {
|
||||||
|
!LogContext::exists() || *meta.level() == Level::ERROR
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Builder-like struct to compose your logging layers.
|
/// Builder-like struct to compose your logging layers.
|
||||||
///
|
///
|
||||||
@ -77,9 +92,7 @@ impl Logger {
|
|||||||
pub fn journald_on_no_workertask(mut self) -> Logger {
|
pub fn journald_on_no_workertask(mut self) -> Logger {
|
||||||
self.layer.push(
|
self.layer.push(
|
||||||
journald_or_stderr_layer()
|
journald_or_stderr_layer()
|
||||||
.with_filter(filter_fn(|metadata| {
|
.with_filter(NoWorkerTask)
|
||||||
!LogContext::exists() || *metadata.level() == Level::ERROR
|
|
||||||
}))
|
|
||||||
.with_filter(self.global_log_level)
|
.with_filter(self.global_log_level)
|
||||||
.boxed(),
|
.boxed(),
|
||||||
);
|
);
|
||||||
@ -115,9 +128,7 @@ impl Logger {
|
|||||||
pub fn stderr_on_no_workertask(mut self) -> Logger {
|
pub fn stderr_on_no_workertask(mut self) -> Logger {
|
||||||
self.layer.push(
|
self.layer.push(
|
||||||
plain_stderr_layer()
|
plain_stderr_layer()
|
||||||
.with_filter(filter_fn(|metadata| {
|
.with_filter(NoWorkerTask)
|
||||||
!LogContext::exists() || *metadata.level() == Level::ERROR
|
|
||||||
}))
|
|
||||||
.with_filter(self.global_log_level)
|
.with_filter(self.global_log_level)
|
||||||
.boxed(),
|
.boxed(),
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user