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

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

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

描述
日期
“日期”字段遵循 W3C 格式,基于协调世界时(UTC)。“日期”字段始终为“YYYY-MM-DD”形式的 10 个字符。 例如,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/?.?”。
谓词
由分析的最后一个请求传递的谓词状态。 包含未知谓词,但超过 255 字节的任何谓词将被截断为此长度。 如果谓词不可用,则连字符(0x002D)用作空字段的占位符。
CookedURL + 查询
URL 及其关联的任何查询都记录为一个字段,用问号(0x3F)分隔。 此字段的长度限制为 4096 字节,将被截断。
  • 如果已分析此 URL(“cooked”),则会使用本地代码页转换记录该 URL,并被视为 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