[FEATURE] Log filter #58
Merged
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.
Log filter
The Understand service provider utilises the event dispatcher (
MessageLogged
event) to capture and deliver logs. This makes it impossible to filter specific log types at the application level even if a custom Laravel log driver is created (the event dispatcher still fires the event).A good use case example for this is to filter out PHP8 deprecation warnings.
Example filter class
Configuration details
The configuration value (filter) must be a callable type:
or a callable dependency from the service container:
The suggested way would be to create an invokable class since it's hard to serialise anonymous functions (Laravel config cache):
The log (callable) filter interface is as follows:
$callable($level, $message, $context)
.The result of the filter must be a boolean value:
TRUE
, the log should be ignored and NOT delivered to Understand.ioFALSE
, the log should be delivered to Understand.ioThe
ignored_logs
config value has higher precedence thanlog_filter
.