我正在浏览帖子码头伐木并试图找出打印的每个属性的含义
123.4.5.6 - - [2004 年 8 月 27 日:10:16:17 +0000]
“获取/jetty/tut/XmlConfiguration.html HTTP/1.1”
200 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”
我得到了一些问题的答案,但仍然无法弄清楚下面提到的一些问题。
- 123.4.5.6 : 请求.getRemoteAddr()
- 破折号(-):无法弄清楚
- 破折号(-):无法弄清楚
- [27/Aug/2004:10:16:17 +0000]:时间戳
- GET : 请求.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; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8 : request.getHeader("User-Agent")
如果我对其他属性的理解有误,请纠正我。
Jetty 的最新版本使用以下命令记录请求CustomRequestLog
format.
它有 2 种默认的“NCSA”输出格式(以及其他一些格式和自定义格式的能力)
-
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/Aug/2004:10:16:17 +0000]“GET /jetty/tut/XmlConfiguration.html HTTP/1.1”200 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 格式之一。
就这样崩溃了...
-
123.4.5.6
: the %{client}a
哪一个是request.getRemoteHost()
-
-
: the -
硬编码的字符串-
在 Jetty 中,该条目将是“远程日志名称用户”,但由于 Jetty 不支持 identd,因此我们没有办法填写此值(identd 是老式技术,从未被大规模采用) http)
-
-
: the %u
这是经过身份验证的用户名,来自 Jetty 内部 API(例如:Request.getAuthentication()
or Authentication.getUserIdentity()
- 仅当您的 web 应用程序使用 Servlet 安全/身份验证/授权时,此功能才有效 - 自定义身份验证技术不会填写此条目。
-
[27/Aug/2004:10:16:17 +0000]
: the %t
这是 Jetty APIRequest.getTimeStamp()
这是在请求完成解析后、分派到处理程序或 Web 应用程序进行处理之前确定的。
-
"GET /jetty/tut/XmlConfiguration.html HTTP/1.1"
: the \"%r\"
这是 HTTP 中使用的原始“请求行”。这是 HTTP 请求的第一行。 (或者request.getMethod()
+ request.getOriginalURI()
+ request.getProtocol()
)
-
200
: the %s
这是从 Jetty 内部 API 获取的响应的已提交状态response.getCommittedMetadata().getStatus()
(这个 API 存在是因为HttpServletResponse
是可变的,并且许多 Web 应用程序倾向于在发送后对其进行修改,这意味着如果我们在此处使用标准 servlet API,我们会记录一个实际上未发送的值)
-
76793
: the %O
这是作为来自 Jetty 内部 API 的响应的一部分在网络上发送的字节response.getHttpChannel().getBytesWritten()
-
"http://localhost:8080/jetty/tut/logging.html"
: the \"%{Referer}i\"
这是请求Referer
行(是的,它拼写错误,但是这里有古老的 HTTP 历史来解释为什么会出现这种情况)。它来自request.getHeader("Referer")
,在许多情况下可以为空。
-
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8"
: the \"%{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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)