我试图调查特定HTTP请求发送到网站的频率。该请求是一个 POST,并具有一个名为 "_method"
的参数。 我可以在萤火虫网中看到这一点。
我需要检查此"_method"
参数的值,因此按照文档 http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve,我将以下内容添加到阀门的雄猫访问配置中
%{_method}r
但它并没有出现在访问日志中。
我想知道这是因为下划线吗?
请注意,无法更改参数名称。
好的,我所要做的就是使用ExtendedAccessLogValve。
我将以下内容添加到我的服务器中.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)
部分是赋予我它的关键部分。
我包括任何旁观者的答案。
%{xxx}r
用于"ServletRequest 中的属性"而不是 HTTP 参数(我假设你的意思是,如果你能在 Firebug 中看到它的话)。ServletRequest 属性将完全在服务器端,因此您将无法在 Firebug 中看到它们。
如果你想输出HTTP参数(它不是GET,即它们在URL中),我认为你必须使用同一页面上记录的请求转储阀。
getAttribute() 和 getParameter() 之间的区别解释了如果上述内容不清楚的区别。