[ 
https://issues.apache.org/jira/browse/LOG4J2-1824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15884139#comment-15884139
 ] 

Matt Sicker commented on LOG4J2-1824:
-------------------------------------

One possible caveat: in Kafka, log messages are sent individually as messages. 
Thus, the pattern of continually transferring to ByteBuffers and draining them 
to continue writing larger messages wouldn't exactly work here. Instead, either 
some garbage has to be made in resizing buffers like in some ReusableMessage 
implementations, or a pool of differently sized buffers can be preallocated 
(doesn't sound ideal, but could be configurable for that sort of scenario where 
it would make sense).

> (GC) Avoid allocating temporary objects in KafkaAppender
> --------------------------------------------------------
>
>                 Key: LOG4J2-1824
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1824
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Appenders
>            Reporter: Matt Sicker
>
> Due to API limitations in kafka-clients, log messages must be encoded into 
> byte arrays rather than directly into ByteBuffers via 
> {{Encoder<LogEvent>}}-enhanced layouts. I've opened up KAFKA-4802 to get 
> support on the client side for not converting the provided ByteBuffers back 
> into a byte array, but in the meantime, KafkaAppender and KafkaManager can be 
> enhanced to use the Encoder API.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to