
Hello all, Given that JDK 7 earlier are used by over 50% of Java projects, I do not think we can force users to upgrade to Java 8. Thus, SLF4J is unlikely to bump its JDK requirement to version 8 for yet some time. On the bright side, there is a way for org.slf4j.Logger to support Java8 lambdas, or just lambdas, without requiring Java 8. As stated in [1], the compiler will treat any interface meeting the definition of a functional interface as a functional interface regardless of whether or not a @FunctionalInterface annotation is present on the interface declaration. This means that we can create a Supplier interface such as public interface Supplier<T> { T get(); } and then add the following method to org.slf4j.Logger interface. package org.slf4j; public interface Logger { .... public void debug(Supplier<T> supplier); .... } This will add lambda support without requiring Java 8 support at build time. The downside of this approach is that implementations of the org.slf4j.Logger interface as found in logback and modules such as slf4j-simple, slf4j-log412, slf4j-jdk14 will need to be updated. Given that the number of such implementations is limited, I think the requirement is quite acceptable. Your comments are welcome, -- Ceki Gülcü [1] https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html