Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/ConsoleAppender at org.logicalcobwebs.logging.impl.Log4JCategoryLog.initialize(Log4JCategoryLog.java:134) at org.logicalcobwebs.logging.impl.Log4JCategoryLog.<init>(Log4JCategoryLog.java:120) at org.logicalcobwebs.logging.impl.Log4jFactory.getInstance(Log4jFactory.java:134) at org.logicalcobwebs.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:247) at org.logicalcobwebs.logging.LogFactory.getLog(LogFactory.java:380) at org.logicalcobwebs.proxool.configuration.PropertyConfigurator.<clinit>(PropertyConfigurator.java:79) ... 66 more Caused by: java.lang.ClassNotFoundException: org.apache.log4j.ConsoleAppender at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 79 more
Concrete subclass of LogFactory that implements the following algorithm to dynamically select a logging implementation class to instantiate a wrapper for.
Use a factory configuration attribute named org.logicalcobwebs.logging.Log to identify the requested implementation class.
Use the org.logicalcobwebs.logging.Log system property to identify the requested implementation class.
If Log4J is available, return an instance of org.logicalcobwebs.logging.impl.Log4JCategoryLog.
If JDK 1.4 or later is available, return an instance of org.logicalcobwebs.logging.impl.Jdk14Logger. Otherwise, return an instance of org.logicalcobwebs.logging.impl.NoOpLog.
Jakarta’s Commons Logging is now longer bundled with the source and is now a dependency. We had forked this component (at their version 1.02) to make it simpler for us to deploy but there are advantages, particular with respect to configuration, to just using the component direct from Jakarta.