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. >
