title: log4j:ERROR Could not create a custom Appender when deploying war in tomcat 7
body: <p>I am having below tag in my log4j.xml</p>
  
  <pre class="lang-html prettyprint-override"><code>&lt;appender name="TEST_APPENDER" class="com.test.TESTAppender"&gt;
    &lt;layout class="org.apache.log4j.SimpleLayout" /&gt;
  &lt;/appender&gt;
  </code></pre>
  
  
  
  <p>for it I am using below jars </p>
  
  <pre class="lang-html prettyprint-override"><code>apache-log4j-extras.jar
  log4j.jar
  </code></pre>
  
  
  
  <p>and when I am deploying war file in tomcat, it is giving below exception </p>
  
  <pre class="lang-html prettyprint-override"><code>log4j:ERROR Could not create an Appender. Reported error follows.
  java.lang.ClassNotFoundException: com.test.TESTAppender
          at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
          at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
          at java.security.AccessController.doPrivileged(Native Method)
          at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
          at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
          at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
          at java.lang.Class.forName0(Native Method)
          at java.lang.Class.forName(Class.java:191)
          at org.apache.log4j.helpers.Loader.loadClass(Loader.java:198)
          at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:247)
          at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:176)
          at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:191)
          at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:284)
          at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:176)
          at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:191)
          at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:523)
          at org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:436)
          at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1004)
          at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:872)
          at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:778)
          at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
          at org.apache.log4j.LogManager.&lt;clinit&gt;(LogManager.java:127)
          at org.apache.log4j.Logger.getLogger(Logger.java:104)
          at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:289)
          at org.apache.commons.logging.impl.Log4JLogger.&lt;init&gt;(Log4JLogger.java:109)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
          at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1116)
          at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:914)
          at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)
          at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)
          at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310)
          at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
          at org.springframework.web.context.ContextLoader.&lt;clinit&gt;(ContextLoader.java:146)
          at org.springframework.web.context.ContextLoaderListener.createContextLoader(ContextLoaderListener.java:53)
          at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:44)
          at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
          at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
          at java.util.concurrent.FutureTask.run(FutureTask.java:262)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:745)
  </code></pre>
  
  
  
  <p>but class TESTAppender is available at this path /WEB-INF/classes/com/test/
  I am not able to understand why this exception is coming</p>
  
  <p>please suggest.</p>