通过部署在同一服务器上的多个应用程序使log4j记录器可见

通过部署在同一服务器上的多个应用程序使log4j记录器可见,log4j,weblogic9.x,Log4j,Weblogic9.x,我有一个应用程序A.ear,其中包括一个web应用程序A.war。我在这场战争中包括了log4jAdmin.jsp,以便在运行时为应用程序中使用的记录器动态控制日志记录级别。我还在同一服务器实例中部署了weblogic中的另一个应用程序B.ear。该应用程序在其自己的log4j.xml文件中也定义了其日志记录器的份额。如何使应用程序B.ear的记录器在作为A.ear一部分的log4jAdmin.jsp页面中可见。我正在使用WebLogic9.2 我知道,根据类加载器的概念,每个应用程序都有自己的

我有一个应用程序A.ear,其中包括一个web应用程序A.war。我在这场战争中包括了log4jAdmin.jsp,以便在运行时为应用程序中使用的记录器动态控制日志记录级别。我还在同一服务器实例中部署了weblogic中的另一个应用程序B.ear。该应用程序在其自己的log4j.xml文件中也定义了其日志记录器的份额。如何使应用程序B.ear的记录器在作为A.ear一部分的log4jAdmin.jsp页面中可见。我正在使用WebLogic9.2

我知道,根据类加载器的概念,每个应用程序都有自己的类加载器&将log4j相关文件(jar和xml)移动到公共域文件夹的解决方案可能会起作用,但由于我无法控制的原因,我无法作为Oracle的合适应用程序a.ear这样做(属于他们的一个通信套件产品)如果我遵循这条路线就会崩溃。B.ear是我开发的一个自定义应用程序,它包含的插件只不过是a.ear调用的企业bean

那么,有没有一种方法可以让日志记录程序在所有部署的应用程序中都可见,以便仅使用一个log4jAdmin.jsp就可以更改它们的日志记录级别呢?我知道我要实现的目标确实有效,因为我注意到它在Oracle为WL 10.3.3发布的最新版本a.ear中工作。为B.ear定义的日志记录程序是visib因此,我想知道需要做些什么,才能在WL9.2中获得相同的结果

如有任何帮助/提示,将不胜感激


谢谢

我没有使用过WebLogic,所以我的建议是推测性的,而且是一般性的

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