Tomcat のサブプロジェクトに共通の log4j xml を使用しようとしています。すでに展開されている親プロジェクトがあり、親プロジェクトの一部は他の 3 つのプロジェクトです。2 つのプロジェクト 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 で log4j(1.2.14)、slf4j-log4j12(1.4.1) jar ファイルの依存関係を宣言しました。このセットアップは、プロジェクト C を個別に実行する場合 (junit テスト ケースを実行する場合) に正常に機能します。プロジェクト C のロギングを機能させるにはどうすればよいですか? log4j xml に加えるべき変更はありますか? ありがとうございました。