配置Jetty 10/11请求日志

编程入门 行业动态 更新时间:2024-10-27 22:34:19
本文介绍了配置Jetty 10/11请求日志的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在查看帖子jetty logging,试图弄清楚打印的每个属性的含义

123.4.5.6--[27/Aug/2004:10:16:17+0000] ";get/jetty/tut/XmlConfiguration.html HTTP/1.1"; 200 76793";http://localhost:8080/jetty/tut/logging.html"; &q;mozilla/5(X11;U;Linux i686;EN-US;RV:1.6)Gecko/20040614火狐/0.8&q;

我知道一些问题的答案,但仍然找不到下面提到的一些问题的答案。

123.4.5.6:request.getRemoteAddr() 破折号(-):无法计算 破折号(-):无法计算 [27/Aug/2004:10:16:17+0000]:时间戳 get:request.getMethod() jetty/tut/XmlConfiguration.html:request.getRequestURI() HTTP/1.1:request.getProtocol() 200:response.getStatus() 76793:response.getHttpChannel().getBytesWritten() http://localhost:8080/jetty/tut/logging.html:无法计算 Mozilla/5.0(X11;U;Linuxi686;EN-US;RV:1.6)Gecko/20040614 Firefox/0.8:request.getHeader(";User-Agent";)

如果我在其他属性上也是错误的,请纠正我。

推荐答案

最新版本的Jetty日志请求,格式为CustomRequestLog

它有两种默认的输出格式(以及其他几种格式并能够自定义格式)

(&q;NCSA&QOOT;FORMAT-QUOT;NCSA&QOOT;FORMAT)

NCSA_FORMAT-"%{client}a - %u %t "%r" %s %O"的语法声明 EXTENDED_NCSA_FORMAT-NCSA_FORMAT+" "%{Referer}i" "%{User-Agent}i""的语法

因此,根据CustomRequestLog上的文档,这意味着以下输出.

123.4.5.6--[27/08/2004:10:16:17+000]";GET/jetty/tut/XmlConfiguration.html HTTP/1.1200 76793";http://localhost:8080/jetty/tut/logging.html";/5.0(X11;U;Linuxi686;EN-US;RV:1.6)GECKO/20040614火狐/0.8RV;

实际上是扩展的NCSA格式之一。

这样分解.

123.4.5.6%{client}a,即request.getRemoteHost() -:在Jetty中,硬编码字符串-条目应该是远程日志名称user";,但是由于Jetty不支持identd,我们没有办法填写此值(identd是一种老式技术,从未在http中得到广泛采用) -%u是经过身份验证的用户名,来自Jetty内部API(例如:Request.getAuthentication()Authentication.getUserIdentity())-只有当您的web应用使用Servlet安全/身份验证/授权时才有效-自定义身份验证技术不会填写此条目。 [27/Aug/2004:10:16:17 +0000]%t%t是Jetty APIRequest.getTimeStamp(),在请求解析完成后,调度到处理程序或webapp进行处理之前设置。 "GET /jetty/tut/XmlConfiguration.html HTTP/1.1""%r",即HTTP中使用的原始";请求行";。它是HTTP请求的第一行。(或request.getMethod()+request.getOriginalURI()+request.getProtocol()) 200%s,即Jetty内部接口response.getCommittedMetadata().getStatus()返回时提交的状态(该接口之所以存在,是因为HttpServletResponse是可变的,很多webapp都会在发送后进行修改,这意味着如果我们在这里使用标准的servlet接口,我们会记录一个实际没有发送的值) 76793%O,作为Jetty内部接口响应的一部分在网络上发送的字节数response.getHttpChannel().getBytesWritten() "http://localhost:8080/jetty/tut/logging.html""%{Referer}i",即请求Referer行(是的,它拼写错误,但这里有古老的HTTP历史记录说明原因)。来自request.getHeader("Referer"),很多情况下可以为空。 "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8""%{User-Agent}i"同上,只是User-Agent请求头不同。

您可以通过多种方式自定义此输出,只需阅读CustomRequestLogapidoc并创建您自己的格式即可,该格式包含您需要的内容和/或您要查找的内容。

https://javadoc.io/doc/org.eclipse.jetty/jetty-server/latest/org.eclipse.jetty.server/org/eclipse/jetty/server/CustomRequestLog.html

这篇关于配置Jetty 10/11请求日志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-03-13 17:15:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/620750.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:日志   Jetty

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!