Open JWT007 opened 1 month ago
Hi @JWT007,
Thank you for helping us checking our documentation against the automatically-generated plugin reference. We created the plugin reference exactly for this purpose and we are happy you find it useful.
This is a longstanding LOG4J2-696 bug, old as Log4j 2 itself. The attempted solution has no chance to work, since the @PluginElement
annotation only accepts classes annotated with @Plugin
and String
is final.
Since you can embed pattern flags in the regex (e.g. (?i)
instead of CASE_SENSITIVE
), I believe that we can just remove the annotation on the parameter.
In the Log4j 2.x documentation for the RegexFilter:
https://logging.apache.org/log4j/2.x/manual/filters.html#RegexFilter
The only two configuration attributes are "regex" and "useRawMsg" (and the common filter attributes onMatch/onMismatch).
In the RegExFilter @PluginFactory there is a nested element for a set of Strings which is not mentioned in the documentation:
If I understand correctly one can provide field names from the Pattern class here: (CASE_INSENSITIVE, COMMENTS, etc.).
The example in the Plugin Reference for the RegexFilter shows an example of nested strings but is not very clear with "a-String-implementation":
Is it?:
A usage example would be helpful.
Maybe this API is not really "public"? In the log4j-core-test RegexFilter test it seems the RegexFilter is never tested with anything but a null value for the patternFlags.