NTEventLogAppender(库已经加载到另一个ClassLoader中)

时间:2011-07-05 11:12:38

标签: java logging log4j event-viewer

我的src包上有一个这样的log4j.properties文件:

log4j.rootLogger=DEBUG, CA, EVA 

#Console Appender 
log4j.appender.CA=org.apache.log4j.ConsoleAppender 
log4j.appender.CA.layout=org.apache.log4j.PatternLayout 
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

#Event Viewer Appender
log4j.appender.EVA=org.apache.log4j.nt.NTEventLogAppender
log4j.appender.EVA.layout=org.apache.log4j.PatternLayout
log4j.appender.EVA.source=MySource
log4j.appender.EVA.layout.ConversionPattern=[%c][%l][%p][%thread]: %m%n

我在接口(LogInterface.java)上创建记录器,如下所示:

package components;

import org.apache.log4j.Logger;

public interface LogInterface {

    static final Logger logger = Logger.getLogger("MyLogger");

}

我将NTEventLogAppender.dll放在:

C:\ Program Files(x86)\ IBM \ WID7_WTE \ runtimes \ bi_v7 \ java \ jre \ bin

有时我在记录异常时收到以下错误:

NTEventLogAppender(库已经加载到另一个ClassLoader中)

我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

此问题的解决方案是将log4j JAR文件放在:

Application_Server_Install_Path \ lib中

在项目中,我将log4j JAR文件作为变量添加到项目的构建路径中(添加变量选项)

这解决了IDE上的JAR引用,唯一要做的就是在Websphere Application Server的运行时添加以前的log4j JAR文件引用。

为此,我访问了WAS管理控制台并添加了以前的log4j JAR文件路径:

环境 - >共享库

尽管似乎没有人遇到同样的问题,但这是未来类似问题的解决方案

由于