See TextEncoderHelper's methods,
copy: from StringBuilder to CharBuffer
encodeText: from CharBuffer to ByteBufferDestination

We don't want to create the byte[] array object so we write directly into
the ByteBuffer.

On Wednesday, 24 February 2016, Mikael Ståldal <[email protected]>
wrote:

> I still cannot find a way to convert a StringBuilder to a byte[].
>
> On Tue, Feb 23, 2016 at 11:03 PM, Gary Gregory <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>
>> How about /dropping/ Serializer1 altogether? Having both is mighty
>> complicated.
>>
>> Gary
>>
>> On Tue, Feb 23, 2016 at 8:52 AM, Remko Popma <[email protected]
>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>>
>>> I wouldn't mind that (no strong opinion either way) but I won't have
>>> time to do that work.
>>>
>>> On Wed, Feb 24, 2016 at 1:23 AM, Gary Gregory <[email protected]
>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>>>
>>>> I see we now have:
>>>>
>>>> org.apache.logging.log4j.core.layout.AbstractStringLayout.Serializer2
>>>>
>>>> Should we
>>>> deprecate 
>>>> org.apache.logging.log4j.core.layout.AbstractStringLayout.Serializer
>>>> and reimplement everything in terms of Serializer2, even if objects are
>>>> allocated?
>>>>
>>>> Gary
>>>>
>>>> On Tue, Feb 23, 2016 at 7:59 AM, Remko Popma <[email protected]
>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>>>>
>>>>> Layout now extends Encoder so now it has this method:
>>>>>
>>>>> encode(LogEvent source, ByteBufferDestination destination)
>>>>>
>>>>> PatternLayout implements this method. It delegates the work of
>>>>> converting the StringBuilder to bytes and writing these bytes into the
>>>>> ByteBufferDestination to the TextEncoderHelper class. No objects are
>>>>> created during this conversion.
>>>>>
>>>>> The final piece is (Rolling)RandomAccessFileAppender, whose manager
>>>>> implements ByteBufferDestination. This appender calls the #encode() methos
>>>>> on the layout (other managers still call Layout#toByteArray).
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Feb 24, 2016 at 12:47 AM, Mikael Ståldal <
>>>>> [email protected]
>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>>>>>
>>>>>> I cannot really find it.
>>>>>>
>>>>>> On Tue, Feb 23, 2016 at 3:59 PM, Remko Popma <[email protected]
>>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>>>>>>
>>>>>>> Yes, that was implemented in
>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-1274.
>>>>>>>
>>>>>>> Please also see the description and discussion in the epic
>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-1270.
>>>>>>>
>>>>>>> Sent from my iPhone
>>>>>>>
>>>>>>> On 2016/02/23, at 23:56, Mikael Ståldal <[email protected]
>>>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>>>>>>>
>>>>>>> Do we have any way to convert a StringBuilder to a byte[], without
>>>>>>> any intermediate String?
>>>>>>>
>>>>>>> It seems like org.apache.logging.log4j.core.util.StringEncoder cannot
>>>>>>> do it.
>>>>>>>
>>>>>>> --
>>>>>>> [image: MagineTV]
>>>>>>>
>>>>>>> *Mikael Ståldal*
>>>>>>> Senior software developer
>>>>>>>
>>>>>>> *Magine TV*
>>>>>>> [email protected]
>>>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>
>>>>>>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com
>>>>>>>
>>>>>>> Privileged and/or Confidential Information may be contained in this
>>>>>>> message. If you are not the addressee indicated in this message
>>>>>>> (or responsible for delivery of the message to such a person), you
>>>>>>> may not copy or deliver this message to anyone. In such case,
>>>>>>> you should destroy this message and kindly notify the sender by
>>>>>>> reply email.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> [image: MagineTV]
>>>>>>
>>>>>> *Mikael Ståldal*
>>>>>> Senior software developer
>>>>>>
>>>>>> *Magine TV*
>>>>>> [email protected]
>>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>
>>>>>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com
>>>>>>
>>>>>> Privileged and/or Confidential Information may be contained in this
>>>>>> message. If you are not the addressee indicated in this message
>>>>>> (or responsible for delivery of the message to such a person), you
>>>>>> may not copy or deliver this message to anyone. In such case,
>>>>>> you should destroy this message and kindly notify the sender by reply
>>>>>> email.
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> E-Mail: [email protected]
>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');> | 
>>>> [email protected]
>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>
>>>> Java Persistence with Hibernate, Second Edition
>>>> <http://www.manning.com/bauer3/>
>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>>> Spring Batch in Action <http://www.manning.com/templier/>
>>>> Blog: http://garygregory.wordpress.com
>>>> Home: http://garygregory.com/
>>>> Tweet! http://twitter.com/GaryGregory
>>>>
>>>
>>>
>>
>>
>> --
>> E-Mail: [email protected]
>> <javascript:_e(%7B%7D,'cvml','[email protected]');> | 
>> [email protected]
>> <javascript:_e(%7B%7D,'cvml','[email protected]');>
>> Java Persistence with Hibernate, Second Edition
>> <http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>
>
>
> --
> [image: MagineTV]
>
> *Mikael Ståldal*
> Senior software developer
>
> *Magine TV*
> [email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>
> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com
>
> Privileged and/or Confidential Information may be contained in this
> message. If you are not the addressee indicated in this message
> (or responsible for delivery of the message to such a person), you may not
> copy or deliver this message to anyone. In such case,
> you should destroy this message and kindly notify the sender by reply
> email.
>

Reply via email to