对于部署在tomcat上的应用程序,是否可以仅获取POST方法的访问日志。目前它显示POST和GET的日志。
在阀门组件中,我看到配置了%m属性,它打印了两种方法(GET和POST)。
是否有任何配置可以显示POST请求。
server.xml中的配置
<Valve className="org.apache.catalina.valves.AccessLogValve" attribute directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
答案 0 :(得分:0)
您可以使用实时尾部并过滤&#34; POST&#34;用grep
$ tail -f localhost_access_log.txt | grep "POST"
这不会修改访问日志的输出,但会允许您实时监控仅包含单词&#34; POST&#34;
的日志条目如果您不担心实时监控,但只想查看所有POST条目而没有其他所有噪声,您可以使用grep创建一个新文件
$ cat localhost_access_log.txt | grep "POST" >> new_post_log_file.txt
在上面的例子中,&#34; new_post_log_file.txt&#34;将包含POST日志条目,没有别的。此方法需要您重新运行该命令以获取最新的日志。
答案 1 :(得分:0)
AccessLogValve
不支持开箱即用。但是,扩展此类并进行以下调整应该很容易:
1)延长AccessLogValve
2)添加一个String标志,例如method
3)覆盖public void log(Request request, Response response, long time)
方法。目前它有以下来源:
if (logElements == null || condition != null
&& null != request.getRequest().getAttribute(condition)) {
return;
}
...
你的方法应该是
if (method != null && !method.equalsIgnoreCase(request.getMethod())) {
return;
} else {
super.log(request, response, time);
}
4)编译你的班级,并将阀门与你的旗帜一起使用。