ECSEncoder - Add the possibility to process or transform the messages

I need to be able to transform some messages. For example obfuscate some information. I want to be able to do that at the encoder level and not before on several components.

Now a days, the encode method add the message using
event.getFormattedMessage()

It could be very useful if we can add something similar to the following at the ECSEncoder class:

/**
 * Subclasses can override this to format the message (for example to obfuscate some fields.)
 * @param event The event to be logged
 * @return The message processed. By default, this method return the message without any modification
 */
protected String processMessage (ILoggingEvent event){
   return event.getFormattedMessage();
}

And at the encode method

EcsJsonSerializer.serializeFormattedMessage(builder, processMessage(event));

What do you think?

The method name could be process, transform, or just getMessage...

3 Likes

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.