Extends API for customizing RLib Logger and provides property based configuration#73
Merged
Conversation
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR expands RLib’s logging customization by introducing property-based configuration and a pattern-driven message rendering pipeline, while also refactoring logger-config contracts into dedicated subpackages and updating the logger API for level-enabled helpers and warnEnabled() naming.
Changes:
- Added property-based logger configuration loading with a loader pipeline (built-ins + ServiceLoader providers) and precedence between
rlib.logger-test.propertiesandrlib.logger.properties. - Introduced pattern-based rendering (
PatternLogMessageRender+ parser + render nodes) with expanded parser/config loader tests and new properties fixtures. - Refactored logger config types into
config.consumer.*,config.loader.*,config.render.*, and updated API call sites (warningEnabled()→warnEnabled()).
Reviewed changes
Copilot reviewed 41 out of 41 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| rlib-network/src/main/java/javasabr/rlib/network/packet/impl/AbstractNetworkPacket.java | Updates call site to warnEnabled() naming. |
| rlib-logger-slf4j-impl/src/test/java/javasabr/rlib/logger/slf4j/impl/Slf4jLoggerImplTest.java | Updates imports to new config subpackages. |
| rlib-logger-impl/src/test/resources/property-loader-test-1.properties | Adds property fixture for loader tests (levels + pattern). |
| rlib-logger-impl/src/test/resources/example-rlib.logger.properties | Adds example property fixture (levels + pattern). |
| rlib-logger-impl/src/test/java/javasabr/rlib/logger/impl/DefaultLoggerTest.java | Updates imports to new config subpackages. |
| rlib-logger-impl/src/test/java/javasabr/rlib/logger/impl/config/render/impl/pattern/PatternRenderNodesParserTest.java | Adds parser tests for literals/tokens and error paths. |
| rlib-logger-impl/src/test/java/javasabr/rlib/logger/impl/config/loader/impl/PropertyLoggerConfigLoaderTest.java | Adds property loader tests for precedence, fallbacks, and invalid values. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/DefaultLoggerService.java | Updates imports to new consumer package. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/DefaultLoggerFactory.java | Updates resolver import to new loader package. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/DefaultLogger.java | Updates imports to new consumer package. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/package-info.java | Adds package-level nullness marker. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/LogMessageRender.java | Moves LogMessageRender into config.render package. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/SimpleLogMessageRender.java | Moves renderer package and adjusts render output formatting. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/PatternRenderNodesParser.java | Adds pattern parser for render nodes. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/PatternLogMessageRender.java | Adds pattern-driven message renderer. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/package-info.java | Adds package-level nullness marker. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/node/StringPatternRenderNode.java | Adds literal-string render node. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/node/ShortLoggerPatternRenderNode.java | Adds %shortLogger render node. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/node/PatternRenderNode.java | Adds render-node interface. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/node/package-info.java | Adds package-level nullness marker. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/node/MessagePatternRenderNode.java | Adds %msg render node. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/node/LevelPatternRenderNode.java | Adds %level render node. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/node/DateTimePatternRenderNode.java | Adds %dateTime{...} render node. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/package-info.java | Adds package-level nullness marker. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/LoggerConfigResolver.java | Removes old resolver from config package. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/LoggerConfig.java | Updates LogMessageConsumer import to new consumer package. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/package-info.java | Adds package-level nullness marker. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/LoggerConfigResolver.java | Adds new resolver combining built-in loaders and provider loaders. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/LoggerConfigLoadersProvider.java | Adds SPI interface for external loader contributions. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/LoggerConfigLoader.java | Moves loader contract into config.loader and adds order constants. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/impl/PropertyLoggerConfigLoader.java | Adds property-based loader with pattern support and defaults. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/impl/package-info.java | Adds package-level nullness marker. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/impl/DefaultLoggerConfigLoader.java | Moves default loader into new loader impl package and updates imports. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/impl/LoggerConfigBuilder.java | Adds builder for assembling immutable LoggerConfig. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/impl/DefaultLoggerConfig.java | Updates imports to new consumer package. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/consumer/package-info.java | Adds package-level nullness marker. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/consumer/LogMessageConsumer.java | Moves consumer contract into config.consumer package. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/consumer/impl/package-info.java | Adds package-level nullness marker. |
| rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/consumer/impl/ConsoleMessageConsumer.java | Moves console consumer into new consumer impl package and updates imports. |
| rlib-logger-api/src/main/java/javasabr/rlib/logger/api/LoggerManager.java | Updates system property key for logger factory override. |
| rlib-logger-api/src/main/java/javasabr/rlib/logger/api/Logger.java | Adds errorEnabled()/infoEnabled()/traceEnabled() and renames warningEnabled() to warnEnabled(). |
|
|
|
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.
Overview
This branch extends logger customization in
rlib-logger-implwith property-based configuration and pattern-driven rendering. It adds a pluggable loader pipeline, introduces a parser-backed message render format, and broadens test coverage for loader precedence/fallback and parser error paths. The logger API also adds explicit level-enabled helpers and updates warning-enabled naming to matchwarn(...)methods.Changes Summary
1. Logger API and compatibility updates
rlib-logger-api/src/main/java/javasabr/rlib/logger/api/Logger.java:errorEnabled(),infoEnabled(), andtraceEnabled()warningEnabled()towarnEnabled()rlib-network/src/main/java/javasabr/rlib/network/packet/impl/AbstractNetworkPacket.javaLoggerManagernow reads factory override fromjavasabr.rlib.logger.factory(rlib-logger-api/.../LoggerManager.java)2. Loader architecture for logger config
LoggerConfigLoadersProviderfor external loader contribution:rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/LoggerConfigLoadersProvider.javaorder(), and use first successful config:rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/LoggerConfigResolver.javarlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/impl/PropertyLoggerConfigLoader.javarlib.logger-test.properties->rlib.logger.properties3. Property configuration builder
LoggerConfigBuilderto build immutable logger-level and consumer mappings:rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/impl/LoggerConfigBuilder.javaPropertyLoggerConfigLoadersupports:logger.level.<loggerName>=<LEVEL>logger.message.pattern=<pattern>SimpleLogMessageRender.4. Pattern render pipeline
PatternLogMessageRenderPatternRenderNodesParserDateTime,Level,Message,ShortLogger,String%dateTime{...}%level%shortLogger%msg%dateTimearguments.5. Package refactoring for config components
config.consumer.*config.loader.*config.render.*package-info.javafiles.6. Testing expansion
PatternRenderNodesParserTestfrom the original baseline with 6 additional cases:PropertyLoggerConfigLoaderTestwith 6 additional cases:SimpleLogMessageRenderfallback when pattern absentrlib-logger-impl/src/test/resources/example-rlib.logger.propertiesrlib-logger-impl/src/test/resources/property-loader-test-1.properties7. Configuration flow diagram
8. Usage samples