[5.6] LogManager driver capable of producing logger with any Monolog handler #23527
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.
The provided driver allows a configuration centric approach to creating Logger instances (channels) where the handler can be any of the built-in Monolog handlers without needing to write custom factories (code).
By using
Container::build()
it is capable of matching any named constructor values from any Handler that are provided in thehandler_params
configuration option. For non-monolog provided handlers, it is capable of accepting an optionhandler_class
where it will use the full class name to instantiate/build.Example of creating a
php://stderr
non-bubbling StreamHandler based logger:Example of a LogEntries based channel logger:
This feature is completely backwards compatible and opt-in. If accepted, I will document it's usage in the manual.