Repository navigation
fix: make startup warnings best-effort through ILoggerFactory - #96
Conversation
Use root ILoggerFactory logging without a temporary scope and make optional warning delivery best-effort. Keep provider ownership with the caller, including when logging activation fails, and document the direct ILogger compatibility change. Co-authored-by: Codex <codex@openai.com>
|
Implementation and local verification are complete for head
Windows CI (including net472 execution) is still being checked; the PR remains draft. Prepared with OpenAI Codex. |
AggregateException.Message does not include inner messages on .NET Framework. Assert against the full exception, as the existing validation regression tests do. Co-authored-by: Codex <codex@openai.com>
|
The first Windows run passed all 972 tests on net8.0, net9.0 and net10.0. net472 passed 971/972; its sole failure was a new validation assertion relying on Head Prepared with OpenAI Codex. |
|
Final verification is green for exact head Windows CI run 37481613894 passed:
The workflow tested this head merged into current develop Ready for review; leaving this PR in draft for the agreed review/closure gate. Prepared with OpenAI Codex. |
Addresses #90.
Summary
ILoggerFactory, preserving category, event ID and registration metadata without creating a temporary logging scope.IsEnabledandLogfailures do not prevent returning the provider. Native ownership of any activated dependencies stays with that provider until the caller disposes it.ILogger<ServiceProviderFactory>registrations no longer supply these warnings; use standardILoggerFactorylogging, such asAddLogging. Warning-delivery errors are nonfatal and warnings can be lost.Verification
ff643d70f02ca4d0b564c333de5e3bdb6dad2ace: 972/972 tests on each of net472, net8.0, net9.0 and net10.0, plus all four native hot-cache probes. Successful run.AggregateException.Message; a test-only follow-up now inspects the full exception. The production fix is unchanged.Prepared with OpenAI Codex.