gpt4 book ai didi

log4j - 从 war 外部加载 Log4j.xml

转载 作者:行者123 更新时间:2023-12-04 02:59:57 26 4
gpt4 key购买 nike

在我的应用程序中,我使用 Log4j 进行日志记录。目前我将 log4j.xml 放在 WEB-INF/classes 中。
下面是我用来加载 log4j.xml 文件的配置。

<!-- language: xml -->

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.xml</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

现在我需要将 log4j.xml 文件放在我的 war 文件之外。该位置很可能是 JBOSS_HOME/server/default/deploy/settings。在设置目录中,我需要放置我的 log4j.xml。

我尝试通过编辑 run.bat 设置 jboss 类路径来加载它,如下所示
set JBOSS_CLASSPATH=%RUN_CLASSPATH%;%JBOSS_HOME%\server\default\deploy\settings
我在 web.xml 下面使用
<!-- language: xml -->

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:/log4j.xml</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

但是它在部署应用程序时抛出异常。异常(exception)是 java.lang.IllegalArgumentException: Invalid 'log4jConfigLocation' parameter: class path resource [/log4j.xml] cannot be resolved to URL because it does not exist
现在我的问题是如何加载它。

最佳答案

您可以像这样简单地声明 log4j 配置的位置:

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>${JBOSS_HOME}/server/default/deploy/settings/log4j.xml</param-value>
</context-param>

关于log4j - 从 war 外部加载 Log4j.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4024361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com