3

我在 Weblogic 10、A 和 B 中部署了 2 个耳朵。在它们中我都有一个“log4j.properties”文件。启动时,第一个耳朵在加载时,日志在正确的文件“A.log”中,但是当第二个耳朵在加载时,所有日志都到“B.log”文件中,甚至与该文件相关的日志第一只耳朵。我错过了一些东西......有什么想法吗?

谢谢

编辑/解决方案: 类加载器问题。添加到 weblogic-application.xml :

<wls:prefer-application-packages> <wls:package-name>org.apache.log4j.*</wls:package-name> </wls:prefer-application-packages>

谢谢大家:)

4

2 回答 2

2

我猜 Weblogic 服务器使用的 log4j 库在您的两个 Web 应用程序中都使用了。

如果是这种情况,两个 Web 应用程序将共享一个根类加载器,为 Weblogic 加载的全局库提供服务。

如果您的 Web 应用程序每个都提供 log4j 的副本,并且您可以选择在服务器类之前加载应用程序类(我不知道 Weblogic,但对于 WebSphere,设置是“类加载器模式:父级优先/父级最后”)可能会解决您的问题。

于 2010-09-08T12:13:16.550 回答
0

老实说,从这里很难说,但你可以试试这些:

1) 检查两个 log4j 属性文件中的记录器名称是否唯一。
2)我认为 .properties 文件没有缓存在磁盘上,但仍然删除了应用程序部署目录(对于两个 EAR 应该是分开的)

于 2010-09-08T11:30:15.413 回答