今天所做的努力
都是在为明天积蓄力量

HTTP API 中的错误日志记录

HTTP API 错误日志的格式

通常,HTTP API 错误日志文件具有和 W3C 错误日志相同的格式,除了 HTTP 错误日志文件不包含列标题外。HTTP API 错误日志的每一行都记录一个错误。字段按特定顺序显示。单个空格字符 (0x0020) 将每一个字段与前一个字段分隔开。在每一个字段中,加号 (0x002B) 替换空格字符、标记和非打印控制字符。

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

字段 说明
日期 “日期”字段采用 W3C 格式。该字段基于协调世界时 (UTC)。“日期”字段始终采用十字符的 YYYY-MM-DD 格式。例如,2003 年 5 月 1 日表示为 2003-05-01。
时间 “时间”字段采用 W3C 格式。该字段基于 UTC。“时间”字段始终采用八字符的 MM:HH:SS 格式。例如,5:30 PM (UTC) 表示为 17:30:00。
客户端 IP 地址 受影响客户端的 IP 地址。该字段中的值可以是 IPv4 地址或 IPv6 地址。如果客户端 IP 地址是 IPv6 地址,则 ScopeId 字段也包含在该地址中。
客户端端口 受影响客户端的端口号。
服务器 IP 地址 受影响服务器的 IP 地址。该字段中的值可以是 IPv4 地址或 IPv6 地址。如果服务器 IP 地址是 IPv6 地址,则 ScopeId 字段也包含在该地址中。
服务器端口 受影响服务器的端口号。
协议版本 目前所使用的协议的版本。

如果连接未经过充分解析以确定协议版本,则使用连字符 (0x002D) 作为空字段的占位符。

如果经解析的主要版本号或次要版本号大于或等于 10,则将版本记录为 HTTP/?.?.

谓词 由经解析的最后一次请求传递的谓词状态。包含未知谓词,但是任何超过 255 字节的谓词都被截断至此长度。如果没有可用的谓词,则使用连字符 (0x002D) 作为空字段的占位符。
CookedURL + Query URL 及任何与其关联的查询都被记录为一个字段,并以问号分隔 (0x3F)。该字段在其 4096 字节的长度限制处被截断。

如果该 URL 已经被解析 ("cooked"),则它通过本地代码页转换进行记录,并被视为一个 Unicode 字段。

如果该 URL 在进行日志记录时还没有经过解析 ("cooked"),则会在没有任何 Unicode 转化的情况下准确复制该 URL。

如果 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

 

 

 

HTTP API 日志所记录的错误类型

HTTP API 日志错误响应客户端、连接超时、孤立的请求和因处理不当而丢弃的连接。

以下列表标识了 HTTP API 记录的错误类型:

  • 响应客户端HTTP API 向客户端发送错误响应,例如由上次接收请求中的解析错误导致的 400 错误。在 HTTP API 发送错误响应之后,它会终止连接。
  • 连接超时 HTTP API 使连接超时。如果在连接超时的时候有请求挂起,则该请求可用于在错误日志中提供有关该连接的详细信息。
  • 孤立的请求 用户模式进程意外退出,同时仍有路由到该进程的排队请求。HTTP API 在错误日志中记录了孤立的请求。

特定错误类型由始终显示为每个错误行最后一个字段的“原因短语”字符串来指定。下表标识了 HTTP API 原因短语。

原因短语 说明
AppOffline 发生服务不可用错误(HTTP 错误 503)。服务不可用,因为应用程序错误导致该应用程序变为脱机状态。
AppPoolTimer 发生服务不可用错误(HTTP 错误 503)。服务不可用,因为应用程序池进程太忙从而无法处理请求。
AppShutdown 发生服务不可用错误(HTTP 错误 503)。服务不可用,因为应用程序因响应管理员策略而自动关闭。
BadRequest 处理请求时出现解析错误。
Client_Reset 在可以将请求分配给工作进程之前,客户端和服务器之间的连接已关闭。此行为的最常见原因是,客户端过早地关闭了它到服务器的连接。
Connection_Abandoned_By_AppPool 来自应用程序池的工作进程已经意外退出,或者通过关闭其句柄孤立了挂起请求。
Connection_Abandoned_By_ReqQueue 来自应用程序池的工作进程已经意外退出,或者通过关闭其句柄孤立了挂起请求。特定于 Windows Vista 和 Windows Server 2008。
Connection_Dropped 在服务器可以发送其最终响应数据包之前,客户端和服务器之间的连接已关闭。此行为的最常见原因是,客户端过早地关闭了它到服务器的连接。
Connection_Dropped_List_Full 客户端和服务器之间的丢弃连接的列表已满。特定于 Windows Vista 和 Windows Server 2008。
ConnLimit 发生服务不可用错误(HTTP 错误 503)。该服务不可用,因为已达到或超过站点级别连接限制。
Connections_Refused 内核 NonPagedPool 内存已下降到 20MB 以下,http.sys 已停止接收新连接。
已禁用 发生服务不可用错误(HTTP 错误 503)。该服务不可用,因为管理员已将应用程序变为脱机状态。
EntityTooLarge 实体超过了所允许的最大大小。
FieldLength 已超过字段长度限制。
已禁止 在解析时遇到已禁止的元素或序列。
标头 标头中发生解析错误。
主机名 在处理主机名时发生解析错误。
内部 发生内部服务器错误(HTTP 错误 500)。
Invalid_CR/LF 出现非法的回车或换行。
LengthRequired 必需的长度值丢失。
N/A 发生服务不可用错误(HTTP 错误 503)。该服务不可用,因为发生内部错误(如内存分配失败之类)。
N/I 由于未知的转换编码,发生未执行错误(HTTP 错误 501),或服务不可用错误(HTTP 错误 503).
编号 在处理编号时发生解析错误。
前提条件 必需的前提条件丢失。
QueueFull 发生服务不可用错误(HTTP 错误 503)。该服务不可用,因为应用程序请求队列已满。
RequestLength 已超过请求长度限制。
Timer_AppPool 连接已过期,因为某请求在服务器应用程序的应用程序池队列中等候时间过长,从而无法取消排队并处理它。该超时持续时间为 ConnectionTimeout。默认情况下,该值设置为两分钟。
Timer_ConnectionIdle 连接过期并保持空闲。默认的 ConnectionTimeout 持续时间为两分钟。
Timer_EntityBody 连接在请求实体到达之前过期。当请求确定具有实体时,HTTP API 将打开Timer_EntityBody 计时器。最初,此计时器的限制设置为 ConnectionTimeout 值(通常为 2 分钟)。每当接收到与该请求有关的其他数据指示时,HTTP API 会重置计时器,以多给连接两分钟的时间(或 ConnectionTimeout 中指定的任意时间)。
Timer_HeaderWait 连接超时,因为请求的标头解析时间超过了默认的两分钟限制。
Timer_MinBytesPerSecond 连接超时,因为客户端未接收具有合理速度的响应。响应发送率慢于 240 字节/秒的默认值。这可以通过 MinFileBytesPerSec 元数据库属性控制。
Timer_ReqQueue 连接已过期,因为某请求在服务器应用程序的应用程序池队列中等候时间过长,从而无法取消排队。该超时持续时间为 ConnectionTimeout。默认情况下,该值设置为两分钟。特定于 Windows Vista 和 Windows Server 2008。
Timer_Response 已保留。当前未使用。
Timer_SslRenegotiation 连接已过期,因为客户端和服务器之间的 SSL 重新协商时间超过了默认的两分钟超时时间。
URL 处理 URL 时发生解析错误。
URL_Length URL 超过最大允许大小。
谓词 处理谓词时解析发生错误。
Version_N/S 发生版本不受支持的错误(HTTP 错误 505)。
赞(0)
未经允许不得转载:流觞 » HTTP API 中的错误日志记录
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址