1. 因为jboss已经集成了log4j 的功能,所以排除加载该功能,我们需要在自己模块中,找到jboss-deployment-structure.xml文件
<jboss-deployment-structure>
<sub-deployment name="ixxx-jxxx-basicdata-core-0.0.1-SNAPSHOT.jar">
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</sub-deployment>
<sub-deployment name="ixxx-jxxx-basicdata-web-0.0.1-SNAPSHOT.war">
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</sub-deployment>
</jboss-deployment-structure>
改配置是防止jboss加载自带的log4j功能. 其中sub-deployment 标签 中 name代表的是我项目中core层和web层。主要是防止自动加载到这两层。
2.引入log4j jar。有两个地方需要引入,一个是meven依赖,一个jboss下的modules。Moudles下,我们需将meven库下 maven\repository\log4j 相同版本的 jar包,拷贝到modules\org\springframework\spring\snowdrop 路径下,并在module.xml下配置好,配置好后如下图所示:
准备工作做好了,下一步该配置web.xml了,需要加上如下内容。
<!--log4j配置文件加载-->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!--启动一个watchdog线程每1800秒扫描一下log4j配置文件的变化-->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>1800000</param-value>
</context-param>
<!--spring log4j监听器-->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
然后将 log4j的配置信息文件log4j.properties,拷贝到war包的WEB-INF 文件夹下,如下图。