我正在尝试为 tomcat 中的子项目使用通用的 log4j xml。已经部署了一个父项目,并且父项目的一部分是其他三个项目。两个项目 A 和 B 已经存在,并且日志记录工作正常。我正在添加一个新项目 C 并更新 log4j,如下所示。我确实看到正在创建 ProjectC.log 文件(这在 tomcat 启动时发生),但该文件(或任何其他文件)中没有与 Project C 相关的日志语句。这是我当前的 log4j xml:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="true">
<appender name="rootAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<appender name="ProjectAAppender" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${catalina.base}/logs/projectA.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="100000KB"/>
<param name="MaxBackupIndex" value="3"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
</layout>
</appender>
<appender name="ProjectBAppender" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${catalina.base}/logs/ProjectB.csv"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="10000KB"/>
<param name="MaxBackupIndex" value="3"/>
<layout class="org.apache.log4j.PatternLayout"/>
</appender>
<appender name="ProjectCAppender" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${catalina.base}/logs/ProjectC.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="10000KB"/>
<param name="MaxBackupIndex" value="3"/>
<layout class="org.apache.log4j.PatternLayout"/>
</appender>
<logger name="projA" additivity="true">
<level value ="DEBUG" />
<appender-ref ref="ProjectAAppender"/>
</logger>
<logger name="projA.Performance" additivity="true">
<level value ="INFO" />
<appender-ref ref="ProjectBAppender"/>
</logger>
<logger name="projC" additivity="true">
<level value ="DEBUG" />
<appender-ref ref="ProjectCAppender"/>
</logger>
<root>
<priority value ="INFO" />
<appender-ref ref="rootAppender"/>
</root>
我获取 log4j 实例的方式是使用 slf4j LoggerFactory :
LoggerFactory.getLogger(clazz)
我已经在我的 pom.xml 中声明了 log4j(1.2.14)、slf4j-log4j12(1.4.1) jar 文件的依赖关系。当我独立执行项目 C 时(运行 junit 测试用例时),此设置工作正常。如何使项目 C 的日志记录工作?我应该对我的 log4j xml 进行任何更改吗?谢谢你。