I don't understand though: appenders should only call encode() if they can offer the Layout a ByteBuffer to write into...
Sent from my iPhone > On 2016/02/24, at 19:36, Mikael Ståldal <[email protected]> wrote: > > But it would be useful to have a way to go from StringBuilder to byte[] (not > ByteBuffer) as well, to be able to optimize a layout and still have it > working together with all existing appenders. > >> On Wed, Feb 24, 2016 at 11:19 AM, Remko Popma <[email protected]> wrote: >> StringBuilder implements CharSequence; the copy method takes a CharSequence >> as its source of characters. >> >> >>> On Wednesday, 24 February 2016, Remko Popma <[email protected]> wrote: >>> 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]> >>>>> 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]> >>>>>> 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]> >>>>>>> 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]> >>>>>>>> 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]> wrote: >>>>>>>>> I cannot really find it. >>>>>>>>> >>>>>>>>>> On Tue, Feb 23, 2016 at 3:59 PM, Remko Popma <[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]> >>>>>>>>>>> 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. >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Mikael Ståldal >>>>>>>>>>> Senior software developer >>>>>>>>>>> >>>>>>>>>>> Magine TV >>>>>>>>>>> [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. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> >>>>>>>>> Mikael Ståldal >>>>>>>>> Senior software developer >>>>>>>>> >>>>>>>>> Magine TV >>>>>>>>> [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] | [email protected] >>>>>>> Java Persistence with Hibernate, Second Edition >>>>>>> JUnit in Action, Second Edition >>>>>>> Spring Batch in Action >>>>>>> Blog: http://garygregory.wordpress.com >>>>>>> Home: http://garygregory.com/ >>>>>>> Tweet! http://twitter.com/GaryGregory >>>>> >>>>> >>>>> >>>>> -- >>>>> E-Mail: [email protected] | [email protected] >>>>> Java Persistence with Hibernate, Second Edition >>>>> JUnit in Action, Second Edition >>>>> Spring Batch in Action >>>>> Blog: http://garygregory.wordpress.com >>>>> Home: http://garygregory.com/ >>>>> Tweet! http://twitter.com/GaryGregory >>>> >>>> >>>> >>>> -- >>>> >>>> >>>> Mikael Ståldal >>>> Senior software developer >>>> >>>> Magine TV >>>> [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. > > > > -- > > > Mikael Ståldal > Senior software developer > > Magine TV > [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. >
