v0.1.2-pre.003-fix.001

This commit is contained in:
2026-08-14 18:29:56 +02:00
parent 6e06802e38
commit 488d8ae0a8
5 changed files with 174 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-logging-lib/src/runtime.rs
// version: 1
// version: 2
use tracing_subscriber::Layer; // rust-rules: trait-import
use tracing_subscriber::layer::SubscriberExt; // rust-rules: trait-import
@@ -72,6 +72,8 @@ fn prepare_runtime_layers(settings: &crate::LoggingSettings) -> ksp_core_lib::Re
}
let mut layers = RuntimeLayers::new();
if let std::option::Option::Some(console) = settings.console() {
let takeover_filter: BoxedRuntimeLayer = std::boxed::Box::new(build_target_filter(settings));
layers.push(takeover_filter);
layers.push(build_console_layer(console, settings));
}
return std::result::Result::Ok(layers);
@@ -87,7 +89,6 @@ fn build_console_layer(console: &crate::ConsoleSettings, settings: &crate::Loggi
.with_ansi(false)
.with_target(true)
.with_span_events(map_span_events(settings.span_events()))
.with_filter(build_target_filter(settings))
.boxed();
return layer;
}

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-logging-lib/unit_tests/runtime.rs
// version: 1
// version: 2
#[test]
fn level_mapping_covers_all_ksp_levels() {
@@ -54,3 +54,20 @@ fn file_output_is_rejected_until_file_runtime_is_introduced() {
};
assert_eq!(error.code(), crate::ERROR_CODE_INVALID_SETTINGS);
}
#[test]
fn console_runtime_keeps_takeover_filter_separate_from_formatter() {
let settings = crate::LoggingSettings::new(
crate::LogFilterLevel::Info,
crate::SpanEvents::Off,
std::option::Option::Some(crate::ConsoleSettings::stdout()),
std::option::Option::None,
);
let result = super::prepare_runtime_layers(&settings);
assert!(result.is_ok());
let layers = match result {
std::result::Result::Ok(layers) => layers,
std::result::Result::Err(_) => return,
};
assert_eq!(layers.len(), 2);
}