我正试图告诉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位置?
答案 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元素,则该应用程序将使用这些库。如果存在类加载器配置,则除非明确引用了全局库,否则不会使用这些库。
您可以在此链接中找到有关全局库的更多详细信息
答案 2 :(得分:0)
${server.config.dir}
变量是Liberty内置服务器配置变量之一,这些变量仅适用于server.xml(以及包含的配置)。
运行Liberty服务器时,user.dir
的设置与${server.config.dir}
相同,因此您只需在jvm.options中将log4j2.xml文件的相对路径指定为:< / p>
-Dlog4j.configurationFile=log4j2.xml