CustomLoggingEventCompositeJsonEncoder.java
package se.jobtechdev.personaldatagateway.api.logging;
import ch.qos.logback.classic.spi.ILoggingEvent;
import java.nio.charset.StandardCharsets;
import net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder;
public class CustomLoggingEventCompositeJsonEncoder extends LoggingEventCompositeJsonEncoder {
@Override
public byte[] encode(ILoggingEvent event) {
final var bytes = super.encode(event);
final var preMaskedBytes = hookPreMasking(bytes);
final var rawMessage = new String(preMaskedBytes);
final var possiblyMaskedMessage =
rawMessage.contains("\"audit\":") ? rawMessage : LogMasker.mask(rawMessage);
return possiblyMaskedMessage.getBytes(StandardCharsets.UTF_8);
}
protected byte[] hookPreMasking(byte[] bytes) {
return bytes;
}
}