Websphere Liberty:如何指定log4j2配置位置?

时间:2019-04-25 21:43:46

标签: log4j2 websphere-liberty open-liberty

我正试图告诉Websphere Liberty我的log4j2.xml文件在哪里,但是它不起作用。

在我的文件jvm.options中配置:

-Dlog4j.configurationFile=file:///${server.config.dir}/log4j2.xml

,但看起来Liberty无法理解jvm.options文件中的变量$ {server.config.dir}。该文件与server.xml文件在同一目录中。

如何为Liberty指定log4j2.xml位置?

3 个答案:

答案 0 :(得分:1)

我认为应该可以通过在server.xml中创建一个Library条目来实现,例如:

<library id="log4jLib">
   <folder dir="/opt/log4j2/config"/>
</library>

其中指定的目录包含log4j2属性或xml文件。

然后为您的应用程序指定一个类加载器,如下所示:

<application id="test" name="test" type="ear" location="test.ear">
  <classloader commonLibraryRef="log4jLib" />
</application>

答案 1 :(得分:1)

有几种在WebSphere中配置log4j的方法。除了pseudonym提到的库条目方法之外,您还可以将log4j2配置文件拖放到位于

的全局库目录中

wlp / usr / servers // lib / global

如果在启动应用程序时上述位置中存在文件,并且该应用程序未配置classloader元素,则该应用程序将使用这些库。如果存在类加载器配置,则除非明确引用了全局库,否则不会使用这些库。

您可以在此链接中找到有关全局库的更多详细信息

WebSphere Liberty Shared Libraries

答案 2 :(得分:0)

${server.config.dir}变量是Liberty内置服务器配置变量之一,这些变量仅适用于server.xml(以及包含的配置)。

运行Liberty服务器时,user.dir的设置与${server.config.dir}相同,因此您只需在jvm.options中将log4j2.xml文件的相对路径指定为:< / p>

-Dlog4j.configurationFile=log4j2.xml