SLF4J warning or error messages and their meanings

Ceki Gülcü
created May 2006, last updated on May 2006

The method o.a.commons.logging.impl.SLF4FLogFactory#release was invoked.

Given the structure of the commons-logging API, in particular as implemented by SLF4J, the o.a.commons.logging.impl.SLF4FLogFactory#release() method should never be called. However, depending on the deployment of commons-logging.jar files in your servlet container, release() may be unexpectedly invoked by a copy of org.apache.commons.logging.LogFactory class shipping with commons-logging.jar.

This is a relatively common occurrence with recent versions of Tomcat, especially if you place jcl104-over-slf4j.jar in WEB-INF/lib directory of your web-application instead of $TOMCAT_HOME/common/lib where $TOMCAT_HOME stands for the directory where Tomcat is installed. In order to fully benefit from the stability offered by jcl104-over-slf4j.jar, we recommend that you place jcl104-over-slf4j.jar in $TOMCAT_HOME/common/lib without placing a copy in your web-applications.

Please also see bug #22.

Logging factory implementation cannot be null

This error is reported when the LoggerFactory class could not find an appropriate binding, indicating that no appropriate SLF4J binding could be found. Placing one of slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar should prove to be an effective remedy.