[
https://issues.apache.org/jira/browse/LOG4J2-1385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15318167#comment-15318167
]
Mikael Ståldal commented on LOG4J2-1385:
----------------------------------------
It seems like `CSVFormat.print()` can take a `CharSequence` and print it
without generating garbage. In that case you can use the same technique as I
use in `GelfLayout`:
```
final Message message = event.getMessage();
if (message instanceof CharSequence) {
format.print((CharSequence)message), buffer, false);
} else if (gcFree && message instanceof StringBuilderFormattable) {
final StringBuilder messageBuffer = getMessageStringBuilder();
((StringBuilderFormattable)message).formatTo(messageBuffer);
format.print(messageBuffer, buffer, false);
} else {
format.print(message.getFormattedMessage(), buffer, false);
}
```
> (GC) CSV layouts should not create a new CSVPrinter for each log event
> ----------------------------------------------------------------------
>
> Key: LOG4J2-1385
> URL: https://issues.apache.org/jira/browse/LOG4J2-1385
> Project: Log4j 2
> Issue Type: Improvement
> Components: Layouts
> Affects Versions: 2.5
> Reporter: Gary Gregory
> Assignee: Gary Gregory
> Fix For: 2.6.1
>
> Attachments: logging-log4j2.patch
>
>
> CSV layouts should not create a new CSVPrinter for each log event. This will
> likely require a new version of Apache Commons CVS, see [CSV-182].
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]