1

我的 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 中)

我该如何解决这个问题?

谢谢

4

1 回答 1

1

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

Application_Server_Install_Path\lib

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

这解决了 IDE 上的 JAR 引用问题,剩下要做的就是在 Websphere Application Server 的运行时添加先前的 log4j JAR 文件引用。

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

环境 -> 共享库

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

谢谢

于 2011-07-11T22:59:08.277 回答