If SLF4J fixes JCL, then why wasn the fix made in JCL instead of creating a new project?
This is a very good question. First, SLF4J static binding approach is very simple, perhaps even laughably so. It was not easy to convince developers of the validity of that approach. It is only after SLF4J was released and started to become accepted did it gain respectability in the relevant community. Second, SLF4J offers two enhancements which tend to be underestimated. Parameterized log messages solve an important problem associated with logging performance, in a pragmatic way. Marker objects, which are supported by the org.slf4j.Logger interface, pave the way for adoption of advanced logging systems and still leave the door open to switching back to more traditional logging systems if need be.