FYI - I've just open sourced a structured logging wrapper for SLF4J. We're using it at my day job to front logging into Splunk and it's been a big improvement. Maybe you will find it useful.
https://github.com/Randgalt/maple
You define a "schema" and then wrap an SLF4J logger. E.g.
public interface LoggingSchema {
LoggingSchema name(String name);
LoggingSchema date(Instant date);
... etc ...
}
...
MapleLogger logger = MapleFactory.getLogger(slf4j, LoggingSchema.class);
logger.info("my message", s -> s.name("john doe").date(Instant.now());
Generates an slf4j log ala:
slf4j.info("my message name=\"john doe\" date=2019-10-08T18:52:15.820177Z");