添加 W3C 样式标头
从具有 Service Pack 1(SP1 的 Windows Server 2003 开始),HTTP Server API 错误日志包括 W3C 样式标头,允许使用标准日志分析器分析日志文件。 下面显示的模板列出了可在 http 错误日志文件中记录的所有字段。
#Software: <Name of the HTTP Server>
#Version: 1.0 <Log format version>
#Date: <Log file creation date and time>
#Fields: <date time s-computername c-ip c-port s-ip s-port cs-version
cs-method cs-uri cs(User-Agent) cs(Cookie) cs(referrer)
cs-host sc-status sc-bytes cs-bytes time-taken s-siteid
s- reason s-queuename <header names of fields logged>
记录其他字段
HTTP 错误日志已扩展为包含 9 个字段,用于记录有关发生的失败的数据。 下面列出了新的错误字段:
- 服务器计算机名称 [S-COMPUTERNAME]
- 用户代理 [CS(USER_AGENT)]
- Cookie [CS(COOKIE)]
- 引用者 [CS(引用者)]
- 主机名 [CS-HOST]
- 服务器接收的字节数 [SC-BYTES]
- 服务器接收和处理的字节数 [CS-BYTES]
- 处理请求所用的时间 [TIME-TAKEN]
- Queue-Name (为 IIS 保留) [S-QUEUENAME]
选择“存档”以登录 HTTP 错误日志文件
ErrorLoggingFields 注册表项已添加,用于控制记录到 HTTP 错误日志中的字段。 此注册表值位于位于以下位置的 HTTP\Parameters 键下:
HKEY_LOCAL_MACHINE
System
CurrentControlSet
Services
HTTP
Parameters
ErrorLoggingFields 注册表值是一个 DWORD 值,其中包含可记录的每个字段的位值。 若要启用特定字段的日志记录,请将相应的位值设置为 1 并重启 HTTP 服务。 若要禁用日志记录,请将位值设置为 0。 若要配置多个字段,请使用单个值的按位 OR。 例如,若要打开 Cookie 和引用者日志记录字段,该值应0x00020000 |0x00040000 = 0x00060000。 如果 ErrorLoggingFields 注册表项不存在,则会记录默认字段。 ErrorLoggingFields 值来记录默认字段0x7c884c7。 若要为下表中显示的所有字段启用日志记录,请将该值设置为0x7dff4e7。
下表列出了错误日志记录字段:
日志字段 | 默认记录 | 位值 |
---|---|---|
日期 | 是的 | 0x00000001 |
时间 | 是的 | 0x00000002 |
服务器计算机名称 | 不 | 0x00000020 |
客户端 IP 地址 | 是的 | 0x00000004 |
客户端端口 | 是的 | 0x00400000 |
服务器 IP 地址 | 是的 | 0x00000040 |
服务器端口 | 是的 | 0x00008000 |
协议版本 | 是的 | 0x00080000 |
方法 | 是的 | 0x00000080 |
URI | 是的 | 0x00800000 |
用户代理 | 不 | 0x00010000 |
饼干 | 不 | 0x00020000 |
引荐 | 不 | 0x00040000 |
主机 | 不 | 0x00100000 |
协议状态 | 是的 | 0x00000400 |
SC-Bytes | 不 | 0x00001000 |
CS-Bytes | 不 | 0x00002000 |
花费的时间 | 不 | 0x00004000 |
SiteId | 是的 | 0x01000000 |
原因短语 | 是的 | 0x02000000 |
队列名称 | 不 | 0x04000000 |
流 ID | 不 | 0x???????? |
时间和日期滚动更新
默认情况下,当当前日志文件达到指定大小时,会创建新的 HTTP 错误日志文件(术语文件滚动更新)。 从 Windows Server 2003 SP1 开始,可以根据日期和时间创建新的错误日志文件。 时间和日期滚动更新由两个新的注册表值控制:ErrorLoggingRolloverType 和 ErrorLoggingLocaltimeRollover。 若要启用时间和日期滚动更新,必须将这些注册表值添加到注册表。 将这些密钥添加到注册表时,必须重新启动 Http 服务。 日志文件滚动更新注册表项在以下项下创建:
HKEY_LOCAL_MACHINE
System
CurrentControlSet
Services
HTTP
Parameters
ErrorLoggingRolloverType 注册表项指示所需的滚动更新类型,并且默认设置为基于大小的滚动更新。 还可以将滚动更新设置为每天、每周、每月或每小时进行。 当文件滚动更新基于时间时,ErrorLoggingLocaltimeRollover 值为 0 指示滚动更新时间以 GMT 表示,值为 1 表示本地时间滚动更新时间。 ErrorLoggingRolloverType 键可以采用从 0 到 4 的值,如下表所示。
滚动更新类型值 | 描述 |
---|---|
0 | 基于大小的滚动更新。 当文件达到 ErrorLogFileTruncateSize 注册表项中定义的大小时,日志文件将滚动更新。 |
1 | 日志文件滚动更新每天发生。 |
2 | 日志文件滚动更新每周发生。 |
3 | 日志文件滚动更新每月发生。 |
4 | 日志文件滚动更新每小时发生。 |
存储错误日志的文件的命名约定因大小、日期和时间滚动更新而异。 下表列出了 Http 日志文件的命名约定。
收费类型 | 日志文件名称 | 描述 |
---|---|---|
大小 | HTTPERRn.LOG | 日志文件在达到特定大小时回收。 n 是文件编号,在日志文件滚动更新时递增。 |
日常 | htYYMMDD.log | 日志文件每天回收。 |
周刊 | htYYMMww.log | 日志文件每周回收,其中 ww 是当月的一周。 |
每月 | htYYMM.log | 日志文件每月回收一次。 |
小时 | htYYMMDDhh.log | 日志文件按小时回收,hh 表示为 0-24 小时表示法表示的一天中的小时。 |