2012-03-16 57 views
0

我有包含Web应用程序A.war的应用程序A.ear。我在这场战争中包含了log4jAdmin.jsp,以便在运行时为此应用程序中使用的记录器动态地控制记录级别。我还在同一服务器实例中的weblogic中部署了另一个应用程序B.ear。这个应用程序也有它自己的log4j.xml文件中定义的记录器的份额。如何使应用程序B.ear的记录器在作为A.ear一部分的log4jAdmin.jsp页面中可见。我正在使用weblogic 9.2。我知道,根据类加载器的概念,每个应用程序都有它自己的类加载器&将log4j相关文件(jar和xml)移动到一个通用的域文件夹的解决方案可能会工作,但由于我无法控制的原因,我不能这样做因为如果遵循这条路线,甲骨文是甲骨文的专利应用程序(属于其通信套件之一)的故障。 B.ear是我开发的一个自定义应用程序,它包含的插件除了由A.ear调用的企业bean之外没有什么。使log4j记录器在部署在同一台服务器上的多个应用程序中可见

那么有没有一种方法可以使记录器跨所有已部署的应用程序可见,以便只使用一个log4jAdmin.jsp我可以更改它们的日志级别?我知道我在努力实现真正的工作,因为我注意到它正在为Oracle 10.3.3发布的最新版本的A.ear中工作。为B.ear定义的记录器在A.ear的log4jAdmin.jsp页面中可见。所以我想知道需要做什么才能让WL 9.2获得同样的结果。

任何帮助/提示将不胜感激。

感谢

回答

0

我还没有与WebLogic的工作,所以我的建议将是投机性的,和一般性质的。

由于类加载层次结构方案是由EJB规范定义的,因此我会尝试将log4j及其配置尽可能在层次结构中尽可能高地部署。大多数应用程序服务器都有一个“扩展名”目录,您可以在其中将扩展名类加载器显示为可见的,这比所有网络/耳朵类加载器优先。您可以将log4j.jar和(重要的!)log4j.xml放在那里。可能需要将log4j.xml打包到jar文件中(我不知道WL特定的细节),因为类加载器通常只查找jar。

相关问题