You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Eli Tucker <et...@itxc.com> on 2001/04/24 20:41:41 UTC

Multiple Servlets and NTEventLogAppender

I'm having a problem using the NTEventLogAppender in log4j 1.0.4 with Tomcat
3.2 and two different web applications.  I have both web applications
loading the same XML configuration file found in
%TOMCAT_HOME%\conf\log4j-config.xml.  When the second web app loads, I see
the following exception:

java.lang.UnsatisfiedLinkError: Native Library
C:\WINNT\NTEventLogAppender.dll already loaded in another classloader
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1346)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1306)
	at java.lang.Runtime.loadLibrary0(Runtime.java:749)
	at java.lang.System.loadLibrary(System.java:820)
	at
org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:120)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:120)
	at
org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:144)
	at
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator
.java:129)
	at
org.apache.log4j.xml.DOMConfigurator.parseChildrenOfCategoryElement(DOMConfi
gurator.java:352)
	at
org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:310)
	at
org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:636)
	at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:567)
	at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:513)
	at
org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:582)
	at com.itxc.sdialer.ServerDialer.<init>(ServerDialer.java:155)
	at java.lang.Class.newInstance0(Native Method)
	at java.lang.Class.newInstance(Class.java:237)
	at
org.apache.tomcat.core.ServletWrapper.loadServlet(ServletWrapper.java:268)
	at
org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:289)
	at
org.apache.tomcat.context.LoadOnStartupInterceptor.contextInit(LoadOnStartup
Interceptor.java:130)
	at
org.apache.tomcat.core.ContextManager.initContext(ContextManager.java:491)
	at
org.apache.tomcat.core.ContextManager.init(ContextManager.java:453)
	at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:195)
	at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:235)

Here are the pertinent lines from my log4j-config.xml file:

  ...

  <appender name="EventLog" class="org.apache.log4j.nt.NTEventLogAppender">
     <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"
               value="%d %-5p [%t] %c (%F:%L) - %m"/>
        />
     </layout>
  </appender>

  <!-- The two servlets belong to the com.itxc.sdialer and com.itxc.eclipse
packages. -->
  <category name="com.itxc">
    <priority value="warn" />
    <appender-ref ref="EventLog" />
  </category>

  <root>
     <priority value ="debug" />
     <appender-ref ref="RollingFile" />
  </root>

What do I have to do in order to get two (or more) webapps to both log to
the NT Event Log?
Thanks in advance for your help.

Eli Tucker
ITXC Corp.

Re: Multiple Servlets and NTEventLogAppender

Posted by Christopher Taylor <cs...@pacbell.net>.
Multiple Servlets and NTEventLogAppenderHaven't tried it, but my guess would be to put the Log4J JAR file in the TOMCAT_HOME\lib folder.

-Chris
  ----- Original Message ----- 
  From: Eli Tucker 
  To: 'log4j-user@jakarta.apache.org' 
  Sent: Tuesday, April 24, 2001 11:41 AM
  Subject: Multiple Servlets and NTEventLogAppender


  I'm having a problem using the NTEventLogAppender in log4j 1.0.4 with Tomcat 3.2 and two different web applications.  I have both web applications loading the same XML configuration file found in %TOMCAT_HOME%\conf\log4j-config.xml.  When the second web app loads, I see the following exception:

  java.lang.UnsatisfiedLinkError: Native Library C:\WINNT\NTEventLogAppender.dll already loaded in another classloader 
          at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1346) 
          at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1306) 
          at java.lang.Runtime.loadLibrary0(Runtime.java:749) 
          at java.lang.System.loadLibrary(System.java:820) 
          at org.apache.log4j.nt.NTEventLogAppender.<clinit>(NTEventLogAppender.java:120) 
          at java.lang.Class.forName0(Native Method) 
          at java.lang.Class.forName(Class.java:120) 
          at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:144) 
          at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:129) 
          at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfCategoryElement(DOMConfigurator.java:352) 
          at org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:310) 
          at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:636) 
          at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:567) 
          at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:513) 
          at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:582) 
          at com.itxc.sdialer.ServerDialer.<init>(ServerDialer.java:155) 
          at java.lang.Class.newInstance0(Native Method) 
          at java.lang.Class.newInstance(Class.java:237) 
          at org.apache.tomcat.core.ServletWrapper.loadServlet(ServletWrapper.java:268) 
          at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:289) 
          at org.apache.tomcat.context.LoadOnStartupInterceptor.contextInit(LoadOnStartupInterceptor.java:130) 
          at org.apache.tomcat.core.ContextManager.initContext(ContextManager.java:491) 
          at org.apache.tomcat.core.ContextManager.init(ContextManager.java:453) 
          at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:195) 
          at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:235) 

  Here are the pertinent lines from my log4j-config.xml file: 

    ... 

    <appender name="EventLog" class="org.apache.log4j.nt.NTEventLogAppender"> 
       <layout class="org.apache.log4j.PatternLayout"> 
          <param name="ConversionPattern" 
                 value="%d %-5p [%t] %c (%F:%L) - %m"/> 
          /> 
       </layout> 
    </appender> 

    <!-- The two servlets belong to the com.itxc.sdialer and com.itxc.eclipse packages. --> 
    <category name="com.itxc"> 
      <priority value="warn" /> 
      <appender-ref ref="EventLog" /> 
    </category> 

    <root> 
       <priority value ="debug" /> 
       <appender-ref ref="RollingFile" /> 
    </root> 

  What do I have to do in order to get two (or more) webapps to both log to the NT Event Log? 
  Thanks in advance for your help. 

  Eli Tucker 
  ITXC Corp.