This issue was first identified in http://jira.qos.ch/browse/LBCORE-47
While it is reported in the logback project, it is also an SLF4J issue.
The problem can be described as follows:
1) In the static initializer of the LoggerFactory class, the result of
StaticLoggerBinder.SINGLETON.getLoggerFactory() is assigned to the
2) the StaticLoggerBinder.SINGLETON.getLoggerFactory() call,
instantiates a logback LoggerContext which proceeds with
3) auto-initialization reads the config file which creates a some component X
4) component X class performs logging via commons-logging, using the jcl-over-slf4j implementation. However, at this stage the loggerFactory variable is not yet assigned. Hence the error.
Solution: Set loggerFactory variable to NOPLoggerFactory before the line
loggerFactory = StaticLoggerBinder.SINGLETON.getLoggerFactory()