Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试图获取请求参数以访问tomcat中的日志_Java_Tomcat_Tomcat6_Tomcat Valve - Fatal编程技术网

Java 试图获取请求参数以访问tomcat中的日志

Java 试图获取请求参数以访问tomcat中的日志,java,tomcat,tomcat6,tomcat-valve,Java,Tomcat,Tomcat6,Tomcat Valve,我试图调查一个特定的HTTP请求被发送到web站点的频率。该请求是一个POST,具有一个名为“\u method”的参数。我可以从萤火虫的落网中看出这一点 我需要检查此“\u method”参数的值,因此在文档之后,我将以下内容添加到阀门的tomcat访问配置中 %{_method}r 但它不会出现在访问日志中 我想知道这是因为下划线吗 注意,无法更改参数名称 %{xxx}r 用于“ServletRequest中的属性”,而不是HTTP参数(如果您可以在Firebug中看到它,我假设您是指

我试图调查一个特定的HTTP请求被发送到web站点的频率。该请求是一个POST,具有一个名为
“\u method”
的参数。我可以从萤火虫的落网中看出这一点

我需要检查此
“\u method”
参数的值,因此在文档之后,我将以下内容添加到阀门的tomcat访问配置中

%{_method}r
但它不会出现在访问日志中

我想知道这是因为下划线吗

注意,无法更改参数名称

%{xxx}r 
用于“ServletRequest中的属性”,而不是HTTP参数(如果您可以在Firebug中看到它,我假设您是指HTTP参数)。ServletRequest属性将完全是服务器端的,所以您将无法在Firebug中看到它们

如果您想输出HTTP参数(这不是GET,即它们在URL中),我认为您必须使用同一页面上记录的请求转储程序

如果上述内容不清楚,则说明差异。

确定, 我要做的就是使用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(_方法)
是给我的关键部分


我会为所有旁观者提供答案。

说得好。忘了吧。我想我需要使用ExtendedAccessLogValve。将对此进行测试并使其正常工作,然后发布更新。下面是一个示例,供其他对此有问题的人使用: