配置 Jetty 10/11 请求日志
Configuring Jetty 10/11 Request Logs
我正在浏览 post 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"
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8"
我得到了一些答案,但仍然无法弄清楚下面提到的一些问题。
- 123.4.5.6 : request.getRemoteAddr()
- 破折号(-) : 无法计算
- 破折号(-) : 无法计算
- [27/Aug/2004:10:16:17 +0000]:时间戳
- 获取: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; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8 : request.getHeader("用户代理")
其他属性如有错误请指正
Jetty默认以NCSA格式登录。据此,
- (2) 将是 RFC 931“用户的远程日志名称”
- (3) 将是“用户验证自己的用户名”
不确定,但我认为其中任何一个都不会有任何价值。
- (10) 这是引荐来源网址(通过超链接指向此请求的页面),数据在 header 中 - 请参阅 Stack Overflow question 2648984
CustomRequestLog
格式的 Jetty 日志请求的最新版本。
它有 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
: %{client}a
即 request.getRemoteHost()
-
: Jetty 中的 -
硬编码字符串 -
,该条目本来是“远程登录名用户”,但由于 Jetty 不支持 identd ,我们没有办法填写这个值(identd 是一种老派技术,从未在 http 上得到广泛采用)
-
: %u
是经过身份验证的用户名,来自 Jetty 内部 APIs (eg: Request.getAuthentication()
or Authentication.getUserIdentity()
-这仅在您的 webapp 使用 Servlet 安全/身份验证/授权时有效 - 自定义身份验证技术不会填写此条目。
[27/Aug/2004:10:16:17 +0000]
:%t
是 Jetty API Request.getTimeStamp()
,当请求完成解析时,但在将其分派到handler 或 webapp 进行处理。
"GET /jetty/tut/XmlConfiguration.html HTTP/1.1"
:\"%r\"
是 HTTP 中使用的原始“请求行”。这是 HTTP 请求的第一行。 (或 request.getMethod()
+ request.getOriginalURI()
+ request.getProtocol()
)
200
:%s
是根据从 Jetty 内部 API response.getCommittedMetadata().getStatus()
获得的响应提交的状态(此 API 存在是因为HttpServletResponse
是可变的,许多 Web 应用程序倾向于在发送后修改它,这意味着如果我们在这里使用标准 servlet API,我们会记录一个实际未发送的值)
76793
:%O
是作为响应的一部分在网络上发送的字节,来自 Jetty 内部 APIs 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
请求 header.
您可以通过无数种方式自定义此输出,只需阅读 CustomRequestLog
apidoc 并创建您自己的格式,其中包含您想要的内容 and/or 您正在寻找的内容。
我正在浏览 post 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" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8"
我得到了一些答案,但仍然无法弄清楚下面提到的一些问题。
- 123.4.5.6 : request.getRemoteAddr()
- 破折号(-) : 无法计算
- 破折号(-) : 无法计算
- [27/Aug/2004:10:16:17 +0000]:时间戳
- 获取: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; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8 : request.getHeader("用户代理")
其他属性如有错误请指正
Jetty默认以NCSA格式登录。据此,
- (2) 将是 RFC 931“用户的远程日志名称”
- (3) 将是“用户验证自己的用户名”
不确定,但我认为其中任何一个都不会有任何价值。
- (10) 这是引荐来源网址(通过超链接指向此请求的页面),数据在 header 中 - 请参阅 Stack Overflow question 2648984
CustomRequestLog
格式的 Jetty 日志请求的最新版本。
它有 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
:%{client}a
即request.getRemoteHost()
-
: Jetty 中的-
硬编码字符串-
,该条目本来是“远程登录名用户”,但由于 Jetty 不支持 identd ,我们没有办法填写这个值(identd 是一种老派技术,从未在 http 上得到广泛采用)-
:%u
是经过身份验证的用户名,来自 Jetty 内部 APIs (eg:Request.getAuthentication()
orAuthentication.getUserIdentity()
-这仅在您的 webapp 使用 Servlet 安全/身份验证/授权时有效 - 自定义身份验证技术不会填写此条目。[27/Aug/2004:10:16:17 +0000]
:%t
是 Jetty APIRequest.getTimeStamp()
,当请求完成解析时,但在将其分派到handler 或 webapp 进行处理。"GET /jetty/tut/XmlConfiguration.html HTTP/1.1"
:\"%r\"
是 HTTP 中使用的原始“请求行”。这是 HTTP 请求的第一行。 (或request.getMethod()
+request.getOriginalURI()
+request.getProtocol()
)200
:%s
是根据从 Jetty 内部 APIresponse.getCommittedMetadata().getStatus()
获得的响应提交的状态(此 API 存在是因为HttpServletResponse
是可变的,许多 Web 应用程序倾向于在发送后修改它,这意味着如果我们在这里使用标准 servlet API,我们会记录一个实际未发送的值)76793
:%O
是作为响应的一部分在网络上发送的字节,来自 Jetty 内部 APIsresponse.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
请求 header.
您可以通过无数种方式自定义此输出,只需阅读 CustomRequestLog
apidoc 并创建您自己的格式,其中包含您想要的内容 and/or 您正在寻找的内容。