Tomcat で .war アプリケーションの独立したアクセスログを構成しようとしていますが、何が失敗しているのかわかりません。
目的は、Tomcat のグローバル アクセス ログに依存することなく、アプリケーションに送信されるリクエストに対して個別のアクセス ログを記録することです。
このためには、書き込み先を指定する AccessLogValve を使用して、独自のコンテキスト構成ファイルを作成する必要があることを理解しています。
アプリケーションの WAR ファイルに次の内容の META-INF/context.xml を作成しました。
<Context path="/Stubby">
<Valve class="org.apache.catalina.valves.AccessLogValve"
rotatable="true"
directory="/var/SP/log/stubby"
prefix="access.log_"
suffix=""
fileDateFormat="yyyyMMdd_HH"
pattern="combined"
buffered="false"
resolveHosts="false"
/>
</Context>
tomcat を起動すると、このファイルが conf/Catalina/localhost/Stubby.xml にコピーされていることがわかりますが、アプリケーションのロード ルーチン中に解析エラーが発生します。
SEVERE: Begin event threw exception
java.lang.NullPointerException
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:295)
(...)
Jul 13, 2011 6:16:12 PM org.apache.catalina.startup.ContextConfig processContextConfig
SEVERE: Parse error in context.xml for /Stubby
java.lang.NullPointerException
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2806)
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2832)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1359)
ここで何が問題なのですか?宣言に必須のプロパティがありませんか?