我一直在这个房子周围,所以会很感激一些帮助。我试图让我的应用程序(在JBoss中作为一个耳朵部署)使用位于应用程序之外的log4j.properties
文件。在同一个JBoss容器中部署了其他应用程序,我不想影响它们。我已经尝试了很多方法,但不能完全实现它。欢迎任何建议。
以下是我尝试过的一些没有效果的事情:
在JBoss类路径中添加了log4j.properties。由于与JBoss log4j发生冲突而无效,详细here。
通过将log4j.properties
添加到JBoss启动脚本,启动时指定的-Dlog4j.configuration=file:/C:\.....\log4j.properties
文件位置。这是不成功的,因为它从容器中的其他应用程序中获取了日志语句。
尝试在EAR文件的WAR文件的log4j.properties
中指定web.xml
位置,但我在上面的步骤1中的链接中详细说明了相同的错误。
有关如何使这项工作的任何想法? JBoss EAP 5.1,Spring 3.1.1,log4j 1.2.16。
答案 0 :(得分:1)
我是这样做的。在web.xml中:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.applicationName.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>10000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
请注意使用log4j.properties以外的文件名。不知道这是否会缓解你的冲突,但可能会。当然,这个配置的问题是你在启动的前10秒没有得到日志。这可能很重要。