mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-25 15:02:45 +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
|
||||
let filter_drain = RuntimeComponentLevelFilter::new(unique_drain).fuse();
|
||||
let filter_drain = RuntimeComponentLevelFilter::new(unique_drain, level).fuse();
|
||||
|
||||
// Ensure the logger is thread-safe
|
||||
let (async_drain, guard) = slog_async::Async::new(filter_drain)
|
||||
@ -112,7 +112,7 @@ where
|
||||
});
|
||||
|
||||
// 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
|
||||
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.
|
||||
struct RuntimeComponentLevelFilter<D> {
|
||||
drain: D,
|
||||
log_level: slog::Level,
|
||||
}
|
||||
|
||||
impl<D> RuntimeComponentLevelFilter<D> {
|
||||
fn new(drain: D) -> Self {
|
||||
RuntimeComponentLevelFilter { drain }
|
||||
fn new(drain: D, log_level: slog::Level) -> Self {
|
||||
RuntimeComponentLevelFilter { drain, log_level }
|
||||
}
|
||||
}
|
||||
|
||||
@ -329,7 +330,7 @@ where
|
||||
}
|
||||
let according_level = component_level_config
|
||||
.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) {
|
||||
self.drain.log(record, values)?;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user