2011-07-13 6 views
2

私はtomcatの私の.warアプリケーション用に独立したアクセスログを設定しようとしていますが、何が失敗しているのか分かりません。tomcatのアプリケーション固有のアクセスログですか?

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> 

私は、このファイルはCONFにコピーされていることが分かりTomcatを開始/カタリナ/ 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) 

ここで何が間違っていますか?宣言に必須の財産がないのですか?

+0

これはどのバージョンのTomcatですか? – Femi

+0

バージョン6.0.32。 jdk1.6.0_26 –

答えて

5

それがこの修正後の

<Valve className=... 

でなければなりません

<Valve class="org.apache.catalina.valves.AccessLogValve" 

、設定がMETA-INFから展開、期待どおりに動作読み込みダム間違いが...。

+0

Hehe。タイプミスをチェックすることさえ考えなかった... – Femi

0

あなたが扱っているのは、クラスローダーの問題です。バルブクラスは、コンテキストXMLをコピーしているクラスローダーが利用できない可能性があります。私はそれが当てはまるとは思わないでしょうが、META-INFからcontext.xmlファイルを削除し、それをconf/Catalina/localhost/Stubby.xmlにコピーすると、バルブは正しく動作しますか?

+0

でMETA-INFからxmlファイルを削除し、conf/Catalina/localhost上にxmlファイルを残しても、例外は発生しなくなりましたが、アプリケーションはログを書き込んでいません... –

関連する問題