Jboss log4j-如何记录到单独/不同的文件

Jboss log4j-如何记录到单独/不同的文件,jboss,log4j,Jboss,Log4j,我的应用程序正在JBoss7.3上运行。Log4j配置文件 <log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender"> <param name="encodi

我的应用程序正在JBoss7.3上运行。Log4j配置文件

<log4j:configuration debug="true"
                 xmlns:log4j='http://jakarta.apache.org/log4j/'>


<appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="encoding" value="UTF-8" />
    <param name="append" value="true" />
    <param name="file" value="${jboss.server.log.dir}/mainWS.log" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <param name="Threshold" value="DEBUG"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} %m rid%X{rid}%n" />
    </layout>
</appender>

<appender name="File1" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="encoding" value="UTF-8" />
    <param name="append" value="true" />
    <param name="file" value="${jboss.server.log.dir}/file1.log" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <param name="Threshold" value="DEBUG"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} %m rid%X{rid}%n" />
    </layout>
</appender>

<appender name="File2" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="encoding" value="UTF-8" />
    <param name="append" value="true" />
    <param name="file" value="${jboss.server.log.dir}/file2.log" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <param name="Threshold" value="DEBUG"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} %m rid%X{rid}%n" />
    </layout>
</appender>

<appender name="opTimeFile" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="encoding" value="UTF-8" />
    <param name="append" value="true" />
    <param name="file" value="${jboss.server.log.dir}/opTime.log" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <param name="Threshold" value="DEBUG"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} %m rid%X{rid}%n" />
    </layout>
</appender>

<logger name="debugLogger" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="fileAppender" />
</logger>

<logger name="Logger1" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="File1" />
</logger>

<logger name="Logger2" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="File2" />
</logger>

<logger name="opTimeLogger" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="opTimeFile" />
</logger>

<root>
    <priority value="OFF" />    
</root> 
但结果只出现在mainWS.log文件中

DEBUG 2014-11-13 10:29:03:125 logger -  rid
DEBUG 2014-11-13 10:29:03:138 logger - opTimeLogger rid
DEBUG 2014-11-13 10:29:03:138 logger - Logger1 rid
DEBUG 2014-11-13 10:29:03:138 logger - debugLogger rid
DEBUG 2014-11-13 10:29:03:138 appender - fileAppender rid
DEBUG 2014-11-13 10:29:03:139 logger - Logger2 rid
似乎只有debugLogger有appender


有什么想法吗?

我的第一个猜测是log4j读取的配置文件与您预期的不同。检查log4j启动时的调试输出,尤其是其中的路径。

我猜log4j与应用服务器的默认日志记录实现之间存在冲突。我不得不从您的部署中排除该模块

我添加了一个WEB-INF/jboss-deployment-structure.xml文件

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
    <!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
    <exclusions>
        <module name="org.apache.log4j" />
    </exclusions>
</deployment>

我还必须在我的应用程序类路径中包含log4j库


现在它工作了

我如何检查它?我想程序会读取corect文件,在jboss日志目录中,我可以找到所有创建的文件(mainWS.log、file1.log、file2.log、opTime.log),但只有mainWS.log被归档。您有
debug=“true”
,所以您需要查看jboss的输出。如果您不知道如何查看JBoss的标准输出,请查看文档或问一个新问题。我非常确定没有更多的log4j配置文件“漂亮”是不够的。上面的输出说:“这不是你要找的配置。”谢谢你的帮助,我已经排除了JBossLog4J。
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
    <!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
    <exclusions>
        <module name="org.apache.log4j" />
    </exclusions>
</deployment>