Tomcat 6 にデプロイされた apring webapp のロギング設定に問題があります。
webapp は commons-logging api を使用します。実行時は log4j を使用する必要があります。ログ ファイルは作成されますが、空のままです。ログ エントリは発生しません。
セットアップは次のとおりです。
WEB-INF/web.xml:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
WEB-INF/classes/commons-logging.properties:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
WEB-INF/log4j.xml:
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
...
</appender>
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${catalina.home}/logs/my.log"/>
...
</appender>
<logger name="my.package">
<level value="INFO"/>
</logger>
<root>
<level value="ERROR"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
ファイル logs/my.log が作成されますが、ログは表示されません。これは tomcat コンソールの情報ログですが、構成されたレイアウト パターンではありません。
commons-logging-1.1.1.jar と log4j-1.2.14.jar は WEB-INF/lib に含まれています。ここで何が間違っているのですか?