Hi Jordan,
Thank you for reaching out with such a meaningful contribution.
I have looked at Mapple with some interest but not long enough to
actually understand what was really going on in the code. I hope to
remedy that shortly and come back with meaningful comments.
In the mean time, it should be said that structured logging is something
that SLF4J should most definitely support. (Some people also talk about
high cardinality logging.)
Best,
--
Ceki Gülcü
On 01.10.2019 22:15, Jordan Zimmerman wrote:
because then you can use that S.fluent().call().chain() code in other
contexts
I see. You can actually decouple, though it might need a bit more work
depending on what you need. For example, the lambda can be defined
independently. E.g.
Statement<Schema> s = s -> s.name(foo).age(bar);
This statement can then be re-used and even extended. There's an example
here -
https://github.com/Randgalt/maple/blob/master/maple-examples/src/main/java/com/myco/app/request/UpdateService.java.
Maple has a bunch on internal utils that could be useful outside of
logging. For example, you can convert a statement lambda into a list of
Names/Values via the MapleSpi factory. E.g.
// save this meta instance somewhere
var metaIInstance = MapleSpi.instance().generate(Schema.class);
// convert a statement into names/values
var instance = metaInstance.newSchemaInstance();
s.handle(instance);
var namesValues = metaIInstance.toNamesValues(instance);
If this became a desired idiom I could make a little utility for this bit.
OT3H I may be moving towards log4j2 in the next months anyway
FWIW - I wrote Maple in an implementation neutral way. It would be very
easy to add a direct Log4J2 backend for it. Just a few classes to implement.
-JZ
_______________________________________________
slf4j-user mailing list
slf4j-user@qos.ch
http://mailman.qos.ch/mailman/listinfo/slf4j-user