4

特定のHTTPリクエストがWebサイトに送信される頻度を調査しようとしています。リクエストはPOSTであり、。という名前のパラメータがあります"_method"。私はこれをfirebugがネットを乗り越えているのを見ることができます。

このパラメーターの値を確認する必要がある"_method"ため、ドキュメントhttp://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valveに従って、バルブのTomcatアクセス構成に以下を追加します。

%{_method}r

ただし、アクセスログには表示されません。

アンダースコアのせいなのかしら?

パラメータ名は変更できませんのでご注意ください。

4

2 に答える 2

7

OK、私がしなければならなかったことは、ExtendedAccessLogValve を使用することでした。

以下をserver.xmlに追加しました

    <Valve className="org.apache.catalina.valves.ExtendedAccessLogValve" directory="logs" pattern="c-dns x-H(remoteUser) date time cs-method cs-uri x-H(protocol) sc-status bytes x-P(_method)" prefix="localhost_extended_access_log." resolveHosts="false" suffix=".txt"/>

その部分x-P(_method)は私にそれを与えた重要な部分です。

見物人への回答を含めています。

于 2012-07-03T14:20:59.940 に答える
2
%{xxx}r 

HTTPパラメーターではなく、「ServletRequestの属性」に使用されます(Firebugで確認できる場合、これはあなたが意味すると思います)。ServletRequest 属性は完全にサーバー側になるため、Firebug でそれらを見ることはできません。

HTTP パラメータを出力したい場合 (GET ではない、つまり URL に含まれている場合) は、同じページに記載されている Request Dumper Valve を使用する必要があると思います。

getAttribute() と getParameter()の違いは、上記が明確でない場合の違いを説明しています。

于 2012-07-03T13:52:40.517 に答える