Hi Ralph,
I cant understand where the hook for the PatternConverter would be.

My override is:
private void tryAppend(final LogEvent event) throws ExecutionException, 
InterruptedException, TimeoutException {
        
        final Layout<? extends Serializable> layout = getLayout();
        String logMessage = (String)layout.toSerializable(event);        
        BuildProperties buildProperties =
            (BuildProperties) 
AppContext.getApplicationContext().getBean(BuildProperties.class);    
        LogViewerDao logViewerDao = new LogViewerDao(buildProperties, event, 
logMessage);        
        manager.send(logViewerDao.toJson().getBytes());
    }

The 2.10 version has:
private void tryAppend(final LogEvent event) throws ExecutionException, 
InterruptedException, TimeoutException {
        final Layout<? extends Serializable> layout = getLayout();
        byte[] data;
        if (layout instanceof SerializedLayout) {
            final byte[] header = layout.getHeader();
            final byte[] body = layout.toByteArray(event);
            data = new byte[header.length + body.length];
            System.arraycopy(header, 0, data, 0, header.length);
            System.arraycopy(body, 0, data, header.length, body.length);
        } else {
            data = layout.toByteArray(event);
        }
        manager.send(data);
    }

Even here the layout is resolved and directly after that sent to the 
KafkaManager. 
In my version I need some action between where the layout data is embedded as 
an attribute in another object;

Kind Regards,
Buks

-----Original Message-----
From: Ralph Goers <ralph.go...@dslextreme.com> 
Sent: Wednesday, 08 January 2020 17:23
To: Log4J Users List <log4j-user@logging.apache.org>
Subject: Re: Need to override the Append method of the KafkaAppender

If you need to wrap the message then you should create a pattern converter. 

Ralph

> On Jan 8, 2020, at 5:23 AM, Buks van der Lingen <buks...@gmail.com> wrote:
> 
> Hi,
> I have a need to wrap the message created by the PatternLayout assigned to my 
> KafkaAppender and pass that to the KafkaManager.
> 
> The wrapper contains Spring-Boot environment/Build and other properties.
> 
> The KafkaManager is private in the appender and I can’t get around the 
> implementation at append(); For now I duplicated the KafkaAppender and 
> just added the functionality I need in append();
> 
> If anyone has a better idea pls advise?
> 
> Kind Regards,
> Buks
> 
> Sent from Mail for Windows 10
> 



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



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

Reply via email to