[ 
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]

Reply via email to