HTTP 服务器 API 错误日志的格式

通常,HTTP 服务器 API 错误日志文件的格式与 W3C 错误日志相同,只是 HTTP 服务器 API 错误日志文件不包含列标题。 HTTP 服务器 API 的每一行错误日志记录一个错误,其中字段按特定顺序排列。 每个字段都由单个空格字符 (0x0020) 与前一个字段分隔。 在每个字段中,空格字符、制表符和不可打印的控制字符将替换为 (0x002B) 加号。

下表标识了错误日志记录中的字段和字段顺序。

字段 说明
日期
“日期”字段遵循 W3C 格式,基于协调世界时 (UTC) 。“日期”字段始终为 10 个字符,格式为“YYYY-MM-DD”。 例如,2003 年 5 月 1 日表示为“2003-05-01”。
时间
“时间”字段遵循 W3C 格式,并且基于 UTC。 时间字段始终为 8 个字符,格式为“MM:HH:SS”。 例如,下午 5:30 (UTC) 表示为“17:30:00”。
客户端 IP 地址
受影响客户端的 IP 地址,可以是 IPv4 地址或 IPv6 地址。 如果客户端 IP 地址是 IPv6 地址,则 ScopeId 字段也包含在地址中。
客户端端口
受影响客户端的端口号。
服务器 IP 地址
受影响服务器的 IP 地址,可以是 IPv4 地址或 IPv6 地址。 如果服务器 IP 地址是 IPv6 地址,则 ScopeId 字段也包含在该地址中。
服务器端口
受影响服务器的端口号。
协议版本
正在使用的协议的版本。
  • 如果尚未对连接进行分析,无法确定协议版本,则将 (0x002D) 的连字符用作空字段的占位符。
  • 如果分析的主版本号或次要版本号大于或等于 10,则版本记录为“HTTP/?.?”。
Verb
最后一个分析的请求传递的谓词状态。 包括未知谓词,但超过 255 字节的任何谓词将被截断为此长度。 如果谓词不可用,则将 (0x002D) 连字符用作空字段的占位符。
CookedURL + 查询
URL 及其关联的任何查询都记录为一个字段,用问号分隔 (0x3F) 。 此字段在长度限制为 4096 字节时被截断。
  • 如果此 URL 已分析 (“cooked”) ,则它使用本地代码页转换进行记录,并被视为 Unicode 字段。
  • 如果在日志记录时未分析此 URL (“cooked”) ,则会准确复制该 URL,而不进行任何 Unicode 转换。
  • 如果 HTTP 服务器 API 无法分析此 URL,则将 (0x002D) 连字符用作空字段的占位符。

协议状态
协议状态不能超过 999。
  • 如果对请求的响应的协议状态可用,则会记录在此字段中。
  • 如果协议状态不可用,则将 (0x002D) 连字符用作空字段的占位符。
SiteId
此版本的 HTTP 服务器 API 中未使用。 此字段中始终显示占位符连字符 (0x002D) 。
原因短语
此字段包含标识所记录的错误类型的字符串。 它永远不会留空。

以下示例行来自 HTTP 服务器 API 错误日志:

2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 
                    HTTP/1.1 GET /qos/1kbfile.txt 503 - ConnLimit
2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 
                    HTTP/1.1 GET /ThisIsMyUrl.htm 400 - Hostname
2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 
                    HTTP/2.0 GET / 505 - Version_N/S
2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 
                    - - - - - Timer_MinBytesPerSecond