在我的应用程序中,我使用 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/