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

问题描述 投票:1回答:3

我试图告诉Websphere Liberty我的log4j2.xmlfile位于哪里,但它不起作用。

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

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

但看起来Liberty似乎不理解jvm.options文件中的变量$ {server.config.dir}。该文件位于server.xml文件的同一目录中。

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

log4j2 websphere-liberty open-liberty
3个回答
1
投票

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

<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
投票

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

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

-Dlog4j.configurationFile=log4j2.xml

1
投票

在WebSphere中有几种配置log4j的方法。除了pseudonym提到的库条目方法之外,您只需将log4j2配置文件放到全局库目录中即可。

WLP的/ usr /服务器// LIB /全球

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

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

WebSphere Liberty Shared Libraries

© www.soinside.com 2019 - 2024. All rights reserved.