2

Tomcat が 404 タイプのエラーを出力するログが必要です。私が使用している: Centos 5.2 の tomcat 6

Tomcat にデプロイされたアプリケーションで 404 エラーが発生しています。要求されたファイルやその他の単純なエラーが見つからない場合に、Tomcat がメッセージを出力するログを見つけることができませんでした。- 私は、アプリケーションによって記録されたものについて話しているのではなく、404 タイプのものについて話しているだけです。

/logs を確認したところ、次の種類のファイルが見つかりました

  • catalina.out : 起動およびシャットダウン メッセージ (ほとんどが INFO メッセージ) が含まれます
  • catalina..log : 上記のファイルと同じ日付のデータが含まれています
  • host-manager.year-mm-dd.log : 空 (Tomcat マネージャー用のようです。使用していません)
  • localhost.year-mm-dd.log : アプリケーション関連のログ メッセージ (org.apache.catalina.core.ApplicationContext... INFO メッセージ)
  • manager.year-mm-dd.log : 空

したがって、これらのいずれにも 404 エラーが含まれていません。/usr/share にアンパックするだけで tomcat をインストールしたので、/var/log にログがないことは確かです (catlina または tomcat を確認しましたが、何もありません)。

JoseKでも提案されているように、server.xmlでバルブを構成しようとしました

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
     prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>

これにより、受信したリクエストの詳細を含むファイル /logs/localhost_access_log.txt が作成されました。

192.168.40.1 - - [23/Jul/2010:09:14:13 +0500] "GET /<project url>/files/file1.html HTTP/1.1" 404 1084

リクエストの URL が含まれています: //files/file1.html 見つからなかったファイルのパスが必要です: /usr/share...../files/file1.html 、しかし、小さな要件に対してはあまりにも多くの作業のようです。もっと簡単な方法を知っている人はいますか?

4

1 に答える 1

3

Tomcat はデフォルトではリクエストをログに記録しませんが、次の行のコメントを外すと記録できますconf/server.xml:

<Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="logs" prefix="localhost_access_log." suffix=".txt"
    pattern="common" resolveHosts="false"/>

これにより、404 もログに記録されます。

OP のコメントから、解決策はカスタム AccessLogValve を作成することのようです。Tomcat のものを拡張し、必要な出力形式を追加します。

アイデアについては、 http://tomcat.apache.org/tomcat-5.5-doc/config/valve.htmlおよびhttp://www.devx.com/Java/Article/32730/1954を参照してください。

于 2010-07-24T11:37:48.760 に答える