首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置Jetty 10/11请求日志

配置Jetty 10/11请求日志
EN

Stack Overflow用户
提问于 2021-09-09 04:04:13
回答 2查看 678关注 0票数 1

我正在查看码头测井的帖子,并试图找出打印的每个属性的含义。

123.4.5.6-27/Aug/2004:10:16:17 +0000 "GET /jetty/tut/XmlConfiguration.html HTTP/1.1“76793 "http://localhost:8080/jetty/tut/logging.html”Mozilla/5.0 (X11;U;Linux i686;en-US;rv:1.6) Gecko/20040614 Firefox/0.8“

我得到了一些人的答案,但仍然无法找到一些人,如下所述。

  1. 123.4.5.6 : request.getRemoteAddr()
  2. 破折号(-):找不出
  3. 破折号(-):找不出
  4. 27/Aug/2004:10:16:17 +0000 :时间戳
  5. 获取: request.getMethod()
  6. jetty/tut/XmlConfiguration.html : request.getRequestURI()
  7. request.getProtocol()
  8. 200 : response.getStatus()
  9. 76793 : response.getHttpChannel().getBytesWritten()
  10. http://localhost:8080/jetty/tut/logging.html:找不出
  11. Mozilla/5.0 (X11;U;Linux i686;en-US;rv:1.6) Gecko/20040614火狐/0.8:request.getHeader(“用户-代理”)

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-09 09:36:58

具有CustomRequestLog格式的Jetty请求的最新版本。

它有2种默认的"NCSA“格式用于输出(以及其他一些格式和自定义格式的能力)

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

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

123.4.5.6-27/Aug/2004:10:16:17 +0000 "GET /jetty/tut/XmlConfiguration.html HTTP/1.1“76793 "http://localhost:8080/jetty/tut/logging.html”Mozilla/5.0 (X11;U;Linux i686;en-US;rv:1.6) Gecko/20040614 Firefox/0.8“

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

像这样崩溃..。

  1. 123.4.5.6%{client}a,也就是request.getRemoteHost()
  2. --是Jetty中-的硬编码字符串,该条目应该是“远程日志名用户”,但是由于Jetty不支持identd,所以我们没有方法来填充这个值(identd是一种传统的技术,从来没有见过http的大应用)
  3. -%u是经过身份验证的用户名,它来自Jetty (例如:Request.getAuthentication()Authentication.getUserIdentity() --只有当您的will应用程序使用Servlet安全/身份验证/授权时才能起作用)自定义身份验证技术不会填写此条目。
  4. [27/Aug/2004:10:16:17 +0000]:Jetty Request.getTimeStamp(),它是JettyRequest.getTimeStamp(),在解析完请求后,在发送给处理程序或webapp进行处理之前,它会被设置为固定的。
  5. "GET /jetty/tut/XmlConfiguration.html HTTP/1.1"\"%r\",它是HTTP中使用的原始“请求行”。这是HTTP请求的第一行。(或request.getMethod() + request.getOriginalURI() + request.getProtocol())
  6. 200%s是在从Jetty response.getCommittedMetadata().getStatus()获得的响应上提交的状态(这个API存在是因为HttpServletResponse是可变的,而且许多we应用程序在发送之后倾向于修改它,这意味着我们记录一个如果在这里使用标准servlet就不会实际发送的值)
  7. 76793%O,它是作为响应的一部分在网络上发送的字节,响应来自Jetty response.getHttpChannel().getBytesWritten()
  8. "http://localhost:8080/jetty/tut/logging.html":请求Referer行的\"%{Referer}i\" (是的,拼写不正确,但这里有古老的HTTP历史,为什么会这样)。它来自request.getHeader("Referer"),在许多情况下可以是空的。
  9. "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8"\"%{User-Agent}i\"与上面的相同,但是对于User-Agent请求头。

您可以以无数种方式定制此输出,只需阅读CustomRequestLog apidoc并创建您自己的格式,该格式具有您想要的和/或您正在寻找的内容。

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

票数 3
EN

Stack Overflow用户

发布于 2021-09-09 08:08:13

默认情况下,Jetty日志采用NCSA格式。根据这个说法,

  • (2)将是RFC 931“用户的远程日志名称”。
  • (3)是“用户验证自己的用户名”。

不确定,但我不认为这些东西在任何时候都有价值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69112100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档