[ https://issues.apache.org/jira/browse/LOG4J2-1341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Remko Popma updated LOG4J2-1341: -------------------------------- Description: *To do* The following pattern converters can be modified to avoid creating temporary objects in their {{format}} method: * EncodingPatternConverter * MapPatternConverter (replace MapMessage internal SortedMap JDK data structure with StringMap) * NdcPatternConverter (let ContextStack implementations implement the StringBuilderFormattable interface) *Investigate* The following pattern converters may be difficult to modify since they rely on JDK components that create temporary objects: * (-) ExtendedThrowablePatternConverter * (-) RegexReplacementConverter * (-) RootThrowablePatternConverter * (-) ThrowablePatternConverter * (-) UuidPatternConverter * (-) VariablesNotEmptyReplacementConverter * (-) ClassNamePatternConverter (location information requires creating StackTraceElements) * (-) FileLocationPatternConverter * (-) FullLocationPatternConverter * (-) LineLocationPatternConverter * (-) MethodLocationPatternConverter *Done* The following pattern converters already do not allocate temporary objects in their format method: * (/) AbstractStyleNameConverter (since 2.8) * (/) HighlightConverter (since 2.7, thanks to Richard Zschech) * (/) StyleConverter (since 2.7, thanks to Richard Zschech) * (/) DatePatternConverter * (/) EqualsIgnoreCaseReplacementConverter (since 2.8) * (/) EqualsReplacementConverter (since 2.8) * (/) IntegerPatternConverter (since 2.8) * (/) LevelPatternConverter * (/) LineSeparatorPatternConverter * (/) LiteralPatternConverter (unless literal contains '${') * (/) LoggerPatternConverter * (/) MarkerPatternConverter (since 2.8) * (/) MarkerSimpleNamePatternConverter * (/) MaxLengthConverter (since 2.8) * (/) MdcPatternConverter (since 2.7) * (/) MessagePatternConverter (unless a Jansi or HTML renderer is configured or message has '${' lookups) * (/) NamePatternConverter * (/) NanoTimePatternConverter * (/) RelativeTimePatternConverter (since 2.8) * (/) SequenceNumberPatternConverter (since 2.8) * (/) ThreadIdPatternConverter * (/) ThreadNamePatternConverter * (/) ThreadPriorityPatternConverter was: *To do* The following pattern converters can be modified to avoid creating temporary objects in their {{format}} method: * AbstractStyleNameConverter * EncodingPatternConverter * MapPatternConverter (replace MapMessage internal SortedMap JDK data structure with StringMap) * NdcPatternConverter (let ContextStack implementations implement the StringBuilderFormattable interface) *Investigate* The following pattern converters may be difficult to modify since they rely on JDK components that create temporary objects: * (-) ExtendedThrowablePatternConverter * (-) RegexReplacementConverter * (-) RootThrowablePatternConverter * (-) ThrowablePatternConverter * (-) UuidPatternConverter * (-) VariablesNotEmptyReplacementConverter * (-) ClassNamePatternConverter (location information requires creating StackTraceElements) * (-) FileLocationPatternConverter * (-) FullLocationPatternConverter * (-) LineLocationPatternConverter * (-) MethodLocationPatternConverter *Done* The following pattern converters already do not allocate temporary objects in their format method: * (/) HighlightConverter (since 2.7, thanks to Richard Zschech) * (/) StyleConverter (since 2.7, thanks to Richard Zschech) * (/) DatePatternConverter * (/) EqualsIgnoreCaseReplacementConverter (since 2.8) * (/) EqualsReplacementConverter (since 2.8) * (/) IntegerPatternConverter (since 2.8) * (/) LevelPatternConverter * (/) LineSeparatorPatternConverter * (/) LiteralPatternConverter (unless literal contains '${') * (/) LoggerPatternConverter * (/) MarkerPatternConverter (since 2.8) * (/) MarkerSimpleNamePatternConverter * (/) MaxLengthConverter (since 2.8) * (/) MdcPatternConverter (since 2.7) * (/) MessagePatternConverter (unless a Jansi or HTML renderer is configured or message has '${' lookups) * (/) NamePatternConverter * (/) NanoTimePatternConverter * (/) RelativeTimePatternConverter (since 2.8) * (/) SequenceNumberPatternConverter (since 2.8) * (/) ThreadIdPatternConverter * (/) ThreadNamePatternConverter * (/) ThreadPriorityPatternConverter > (GC) Avoid allocating temporary objects in Pattern Converters for > PatternLayout > ------------------------------------------------------------------------------- > > Key: LOG4J2-1341 > URL: https://issues.apache.org/jira/browse/LOG4J2-1341 > Project: Log4j 2 > Issue Type: Improvement > Components: Pattern Converters > Affects Versions: 2.5 > Reporter: Remko Popma > Fix For: 2.8 > > > *To do* > The following pattern converters can be modified to avoid creating temporary > objects in their {{format}} method: > * EncodingPatternConverter > * MapPatternConverter (replace MapMessage internal SortedMap JDK data > structure with StringMap) > * NdcPatternConverter (let ContextStack implementations implement the > StringBuilderFormattable interface) > *Investigate* > The following pattern converters may be difficult to modify since they rely > on JDK components that create temporary objects: > * (-) ExtendedThrowablePatternConverter > * (-) RegexReplacementConverter > * (-) RootThrowablePatternConverter > * (-) ThrowablePatternConverter > * (-) UuidPatternConverter > * (-) VariablesNotEmptyReplacementConverter > * (-) ClassNamePatternConverter (location information requires creating > StackTraceElements) > * (-) FileLocationPatternConverter > * (-) FullLocationPatternConverter > * (-) LineLocationPatternConverter > * (-) MethodLocationPatternConverter > *Done* > The following pattern converters already do not allocate temporary objects in > their format method: > * (/) AbstractStyleNameConverter (since 2.8) > * (/) HighlightConverter (since 2.7, thanks to Richard Zschech) > * (/) StyleConverter (since 2.7, thanks to Richard Zschech) > * (/) DatePatternConverter > * (/) EqualsIgnoreCaseReplacementConverter (since 2.8) > * (/) EqualsReplacementConverter (since 2.8) > * (/) IntegerPatternConverter (since 2.8) > * (/) LevelPatternConverter > * (/) LineSeparatorPatternConverter > * (/) LiteralPatternConverter (unless literal contains '${') > * (/) LoggerPatternConverter > * (/) MarkerPatternConverter (since 2.8) > * (/) MarkerSimpleNamePatternConverter > * (/) MaxLengthConverter (since 2.8) > * (/) MdcPatternConverter (since 2.7) > * (/) MessagePatternConverter (unless a Jansi or HTML renderer is configured > or message has '${' lookups) > * (/) NamePatternConverter > * (/) NanoTimePatternConverter > * (/) RelativeTimePatternConverter (since 2.8) > * (/) SequenceNumberPatternConverter (since 2.8) > * (/) ThreadIdPatternConverter > * (/) ThreadNamePatternConverter > * (/) ThreadPriorityPatternConverter -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org