如何设置log4j.configuration系统变量在WebSphere 7?(how to se

2019-07-04 23:57发布

我有一个Java EE 5的Web应用程序,我作为一个EAR文件部署到WebSphere 7。

我希望我的log4j的配置是外部EAR文件,以便在需要时,无需重建和重新部署EAR文件,我可以调整日志的内容。

我的理解是,我可以通过设置“系统变量”之称log4j.configuration指定我log4j.properties文件的位置。 (实施例log4j.configuration = C:/log4j.properties)

我的问题是,我该如何设置在WebSphere 7管理控制台该系统变量?

我四处浏览看有Environment > WebSphere Variables ,但看起来不正确的,因为这将设置变量为整个服务器。 我猜我想设置一个系统变量只是我的应用程序EAR文件。

任何帮助或建议,非常感谢!

Answer 1:

log4j.configuration属性是Java虚拟机的系统属性。 你可以将它添加到通用JVM参数应用服务器的列表的末尾加载这个属性。 这是在WebSphere控制台通过以下导航完成:

Servers > Application servers > [app server name] > Process definition > Java Virtual Machine

在通用JVM参数,添加以下内容:

-Dlog4j.configuration=file:C:/log4j.properties

点击Apply ,在此页面的底部,并保存更改。 这将要求应用程序服务器重新启动才能生效。



Answer 2:

您还可以使用共享库的应用程序,并把你的log4j.xml那里。



Answer 3:

我找到一个解决方案分配给每个EAR或WAR外部的log4j.xml配置文件:

  1. 我从提取EAR我们的的log4j.xml,这有拉链孤独XML到一个JAR文件。 把它放在服务器上的路径由WebSphere访问,
  2. 创建一个共享库(的WebSphere>环境>共享库)映射到类路径此存档。 请确保选择“将独立的类加载器为这个共享库”或者你必须为你的应用程序的每个模块分配的参考,而不是仅仅父EAR。
  3. 我们EAR内分配的参考(应用程序 - > ApplicationType - > WebSphere企业应用程序 - > EAR名 - >共享库引用 - >选择你的耳朵 - >参考共享库 - >选择的Log4j配置JAR)和添加。
  4. 重新启动应用程序

我用这种方式来指定特定的外部的log4j配置文件,以每WAR在一个EAR。 在这里你可以找到原来的解决方案。



文章来源: how to set log4j.configuration system variable in WebSphere 7?