1

我一直在这个房子周围,所以会很感激一些帮助。我试图让我的应用程序在 JBoss 中部署为一个耳朵,以使用log4j.properties位于应用程序外部的文件。在同一个 JBoss 容器中部署了其他应用程序,我不想影响它们。我尝试了多种方法,但无法完全发挥作用。欢迎任何建议。

以下是我尝试过的一些无效的方法:

  1. 将 log4j.properties 添加到 JBoss 类路径。由于与 JBoss log4j 冲突而无法正常工作,详见此处

  2. 通过添加到 JBoss 启动脚本来指定log4j.properties启动时的文件位置。-Dlog4j.configuration=file:/C:\.....\log4j.properties这是不成功的,因为它从容器中的其他应用程序中获取了日志语句。

  3. 尝试在 EAR 文件中指定WAR 文件的log4j.properties位置,web.xml但我在上面第 1 步中的链接中详细说明了相同的错误。

关于如何使它工作的任何想法?JBoss EAP 5.1、Spring 3.1.1、log4j 1.2.16。

4

1 回答 1

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 秒内没有日志。这可能很重要。

于 2013-03-04T18:32:35.443 回答