mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-26 15:32:30 +00:00
libs:logging: Fix logger
PR #8311 inadvertently broke the logging since no log messages below the `Info` level are logged now, regardless of the requested log level. Resolve the issue by storing the requested log level in the `RuntimeComponentLevelFilter` and using that level in the `log()` function, rather than hard-coding `Info` as the default where no entry is found in the `FILTER_RULE` hashmap. Fixes: #8546. Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
This commit is contained in:
parent
818b8f93b1
commit
f9f1d3a071
@ -68,7 +68,7 @@ pub fn create_term_logger(level: slog::Level) -> (slog::Logger, slog_async::Asyn
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Allow runtime filtering of records by log level
|
// Allow runtime filtering of records by log level
|
||||||
let filter_drain = RuntimeComponentLevelFilter::new(unique_drain).fuse();
|
let filter_drain = RuntimeComponentLevelFilter::new(unique_drain, level).fuse();
|
||||||
|
|
||||||
// Ensure the logger is thread-safe
|
// Ensure the logger is thread-safe
|
||||||
let (async_drain, guard) = slog_async::Async::new(filter_drain)
|
let (async_drain, guard) = slog_async::Async::new(filter_drain)
|
||||||
@ -112,7 +112,7 @@ where
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Allow runtime filtering of records by log level
|
// Allow runtime filtering of records by log level
|
||||||
let filter_drain = RuntimeComponentLevelFilter::new(unique_drain).fuse();
|
let filter_drain = RuntimeComponentLevelFilter::new(unique_drain, level).fuse();
|
||||||
|
|
||||||
// Ensure the logger is thread-safe
|
// Ensure the logger is thread-safe
|
||||||
let (async_drain, guard) = slog_async::Async::new(filter_drain)
|
let (async_drain, guard) = slog_async::Async::new(filter_drain)
|
||||||
@ -283,11 +283,12 @@ where
|
|||||||
// specified in the struct according to the component it belongs to.
|
// specified in the struct according to the component it belongs to.
|
||||||
struct RuntimeComponentLevelFilter<D> {
|
struct RuntimeComponentLevelFilter<D> {
|
||||||
drain: D,
|
drain: D,
|
||||||
|
log_level: slog::Level,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<D> RuntimeComponentLevelFilter<D> {
|
impl<D> RuntimeComponentLevelFilter<D> {
|
||||||
fn new(drain: D) -> Self {
|
fn new(drain: D, log_level: slog::Level) -> Self {
|
||||||
RuntimeComponentLevelFilter { drain }
|
RuntimeComponentLevelFilter { drain, log_level }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -329,7 +330,7 @@ where
|
|||||||
}
|
}
|
||||||
let according_level = component_level_config
|
let according_level = component_level_config
|
||||||
.get(&component.unwrap_or(DEFAULT_SUBSYSTEM.to_string()))
|
.get(&component.unwrap_or(DEFAULT_SUBSYSTEM.to_string()))
|
||||||
.unwrap_or(&slog::Level::Info);
|
.unwrap_or(&self.log_level);
|
||||||
if record.level().is_at_least(*according_level) {
|
if record.level().is_at_least(*according_level) {
|
||||||
self.drain.log(record, values)?;
|
self.drain.log(record, values)?;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user