I am trying to add some additional fields but JsonLayout seems to fail with that.
I am new to java and couldn't find out what am I missing...
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Logger;
import org.apache.logging.log4j.core.appender.ConsoleAppender;
import org.apache.logging.log4j.core.appender.FileAppender;
import org.apache.logging.log4j.core.layout.JsonLayout;
import org.apache.logging.log4j.core.util.KeyValuePair;
public class Try {
Logger logger;
Try(){
KeyValuePair[] kvs = {new KeyValuePair("hip", "hi")};
System.out.println(kvs[0].toString());
logger = (Logger) LogManager.getLogger("com.try1");
logger.setLevel(Level.DEBUG);
logger.addAppender(ConsoleAppender.newBuilder().setName("console.builder1")
.setLayout(JsonLayout.newBuilder().setProperties(true)
.setAdditionalFields(kvs)
.setComplete(true)
.build())
.build());
}
public void debug(String message){
System.out.println(logger.isEnabled(Level.DEBUG));
logger.debug(message);
}
}
If i remove.setAdditionalFields(kvs) line everything just works magically. But with this log4j prints nothing.