The layers of abstraction for Java projects are getting almost comical.
I'm sure there's good reasons behind it, but setting up logging for a Java backend a while back was pretty crazy. Ended up choosing logback as the logger implementation, sl4j as the logger abstraction layer, and then added log4j and commons-logging replacement jars that emulated those API's and redirected them to sl4j, which redirected them to logback.
https://youtu.be/_ahvzDzKdB0?si=gBeFVZypCDLUoMNf