feat(LoggingConfigurator): add functionality to create configured log…#5261
Merged
feat(LoggingConfigurator): add functionality to create configured log…#5261
Conversation
…gers at runtime 5260
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a LoggingConfigurator::getLogger() API to create/configure loggers on-demand at runtime while avoiding registry name collisions.
Changes:
- Introduces
LoggingConfigurator::getLogger()plus internal collision validation for channels/formatters. - Adds three CppUnit tests covering new logger creation, existing logger behavior, and collision skipping.
- Updates test suite registration to include the new cases.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| Util/include/Poco/Util/LoggingConfigurator.h | Declares getLogger() and documents collision behavior; adds validateConfiguration() declaration. |
| Util/src/LoggingConfigurator.cpp | Implements getLogger() and validateConfiguration() collision checks. |
| Util/testsuite/src/LoggingConfiguratorTest.h | Adds new test method declarations. |
| Util/testsuite/src/LoggingConfiguratorTest.cpp | Adds new test implementations and registers them in the suite. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Add LoggingRegistry::hasChannel()/hasFormatter() to avoid exception-driven control flow in validateConfiguration() - Use C++17 if-init in getLogger() to eliminate double Logger lookup - Log warning when configuration is skipped due to name collision - Add [[nodiscard]] to getLogger() and validateConfiguration() - Strengthen testGetLoggerCollision to also verify channel type
matejk
added a commit
that referenced
this pull request
Mar 24, 2026
#5261) * feat(LoggingConfigurator): add functionality to create configured loggers at runtime 5260 * feat(LoggingConfigurator): review fixes #5260 * enh(LoggingConfigurator): review improvements for getLogger() - Add LoggingRegistry::hasChannel()/hasFormatter() to avoid exception-driven control flow in validateConfiguration() - Use C++17 if-init in getLogger() to eliminate double Logger lookup - Log warning when configuration is skipped due to name collision - Add [[nodiscard]] to getLogger() and validateConfiguration() - Strengthen testGetLoggerCollision to also verify channel type --------- Co-authored-by: Matej Kenda <matejken@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…gers at runtime 5260