Description
Review current Filter implementation classes and change them to be garbage-free where feasible. Document on the web site which filters are garbage free and which are not.
Current status
- BurstFilter (allocates, non-trivial to change)
- CompositeFilter (adding & removing elements produces garbage for thread safety, no allocation in steady state) - since 2.6
- DynamicThresholdFilter (garbage free since 2.6)
- LevelRangeFilter (garbage free since 2.8)
- MapFilter (garbage free since 2.8, but logging a MapMessage still allocates)
- MarkerFilter (garbage free since 2.8)
- RegexFilter (not garbagefree due to JDK regex library)
- ScriptFilter (not garbagefree: creates new Binding object for each event)
- StructuredDataFilter (garbage free since 2.8)
- ThreadContextMapFilter (garbage free since 2.8)
- ThresholdFilter (garbage free since 2.8)
- TimeFilter (uses Calendar to calculate millisSinceMidnight for each event. Can refactor by reusing some of the FixedDateFormat logic.)
Attachments
Issue Links
- supercedes
-
LOG4J2-1590 AbstractFilter should call vararg method from methods with unrolled parameters
- Closed