在 IIS 中配置日志记录

作者:Keith Newman 和 Robert McMurray

你可以在 Web 服务器或网站上配置日志,以记录有关 HTTP 请求和错误的信息。 日志中的信息可以帮助你进行疑难解答或优化你的网站。

先决条件

若要充分利用本教程,你必须具有对运行以下操作系统之一的计算机的访问权限:

  • Windows Server® 2012
  • Windows® 8

在站点级别上配置日志记录

你可以通过以下方法执行此过程:使用用户界面 (UI) 或直接编辑配置文件。

使用 UI 在站点级别上配置日志记录

  1. 打开 IIS 管理器。

    • 对于 Windows Server 2012,在“开始”页面上,单击“服务器管理器”磁贴,然后单击“确定”。 在“服务器管理器”中,单击“工具”菜单,然后单击“Internet Information Services (IIS) 管理器”
    • 对于 Windows 8,在“开始”页上,键入“控制面板”,然后单击搜索结果中的“控制面板”图标。 在“控制面板” 屏幕上,依次单击“系统和安全” 、“管理工具” 和“Internet Information Services (IIS) Manager”
  2. 在“连接”树视图中,选择你的网站。

  3. 在“功能视图”中,双击“日志记录”

  4. 在“日志记录”页面上的“日志文件”部分的“格式”下,选择以下日志文件格式之一:

    • IIS:使用 Microsoft IIS 日志文件格式记录关于站点的信息。 此格式由 HTTP.sys 进行处理,并且是“固定” 的基于 ASCII 文本的格式,这意味着你无法自定义记录的字段。 字段由逗号分隔,记录的时间为本地时间。 有关 IIS 日志文件格式的详细信息,请参阅 IIS 日志文件格式 (IIS 6.0)
    • NCSA:使用美国国家超级计算技术应用中心 (NCSA) 公用日志文件格式来记录关于站点的信息。 此格式由 HTTP.sys 进行处理,并且是“固定” 的基于 ASCII 文本的格式,这意味着你无法自定义记录的字段。 字段由空格分隔,记录的时间为带有协调世界时 (UTC) 偏差的本地时间。 有关 NCSA 日志文件格式的详细信息,请参阅 NCSA 通用日志文件格式 (IIS 6.0)
    • W3C:使用集中的 W3C 日志文件格式来记录关于服务器上所有站点的信息。 此格式由 HTTP.sys 进行处理,并且是“可自定义” 的基于 ASCII 文本的格式,这意味着你可以指定记录的字段。 通过单击“日志记录” 页面上的“选择字段” 来指定在“W3C 日志记录字段” 对话框中记录的字段。 字段由空格分隔,记录的时间采用协调世界时 (UTC) 格式。 有关 W3C 日志文件格式的详细信息,请参阅 W3C 扩展日志文件格式 (IIS 6.0)
    • 自定义:对自定义的日志记录模块使用自定义格式。 如果选择此选项,则“日志记录”页面将被禁用,因为无法在 IIS 管理器中配置自定义日志记录。 有关如何使用自定义日志文件格式的详细信息,请参阅自定义日志记录模块 (IIS 6.0)
  5. 在“目录”下,指定应存储日志文件的路径。 默认为 %SystemDrive%\inetpub\logs\LogFiles

    注意

    最佳做法是将日志文件(例如失败请求跟踪日志)存储在 %systemroot% 之外的目录中。

  6. 在“日志文件滚动更新”部分中,选择以下选项之一:

    • 计划:根据以下值之一来创建新日志文件:

      • 每小时:每小时创建一个新日志文件。
      • 每日:每日创建一个新日志文件。
      • 每周:每周创建一个新日志文件。
      • 每月:每月创建一个新日志文件。
    • 最大文件大小(以字节为单位):在文件达到某个大小(以字节为单位)时创建新日志文件。最小文件大小为 1048576 个字节。 如果将此特性设置为小于 1048576 个字节的值,则会隐式将默认值假定为 1048576 个字节。

    • 不创建新的日志文件:只有一个日志文件,在记录信息的过程中,此文件将不断变大。

  7. 选中“使用本地时间进行文件命名和滚动更新”以指定日志文件命名和滚动更新的时间都使用本地服务器时间。 如果未选定此项,则使用协调世界时 (UTC)。

    注意

    无论此设置为何值,实际日志文件中的时间戳将对从“格式”列表中选择的日志格式使用此时间格式。 例如,NCSA 和 W3C 日志文件格式对时间戳使用 UTC 时间格式。

  8. 在“操作”窗格中,单击“应用”

在服务器级别上配置每站点日志记录

你可以通过以下方法执行此过程:使用用户界面 (UI) 或直接编辑配置文件。

使用 UI 在服务器级别上配置每站点日志记录

  1. 在 IIS 管理器的“连接”树视图中,选择你的 Web 服务器。

  2. 在“功能视图”中,双击“日志记录”

  3. 在“日志记录”页面上的“每站点一个日志文件”下,从下拉列表中选择“站点”。 默认情况下,“站点”处于选中状态。

  4. 在“日志记录”页面上的“日志文件”部分的“格式”下,选择以下日志文件格式之一:

    • IIS:使用 Microsoft IIS 日志文件格式记录关于站点的信息。 此格式由 HTTP.sys 进行处理,并且是“固定” 的基于 ASCII 文本的格式,这意味着你无法自定义记录的字段。 字段由逗号分隔,记录的时间为本地时间。 有关 IIS 日志文件格式的详细信息,请参阅 IIS 日志文件格式 (IIS 6.0)
    • NCSA:使用美国国家超级计算技术应用中心 (NCSA) 公用日志文件格式来记录关于站点的信息。 此格式由 HTTP.sys 进行处理,并且是“固定” 的基于 ASCII 文本的格式,这意味着你无法自定义记录的字段。 字段由空格分隔,记录的时间为带有协调世界时 (UTC) 偏差的本地时间。 有关 NCSA 日志文件格式的详细信息,请参阅 NCSA 通用日志文件格式 (IIS 6.0)
    • W3C:使用集中的 W3C 日志文件格式来记录关于服务器上所有站点的信息。 此格式由 HTTP.sys 进行处理,并且是“可自定义” 的基于 ASCII 文本的格式,这意味着你可以指定记录的字段。 通过单击“日志记录” 页面上的“选择字段” 来指定在“W3C 日志记录字段” 对话框中记录的字段。 字段由空格分隔,记录的时间采用协调世界时 (UTC) 格式。 有关 W3C 日志文件格式的详细信息,请参阅 W3C 扩展日志文件格式 (IIS 6.0)
    • 自定义:对自定义的日志记录模块使用自定义格式。 如果选择此选项,则“日志记录”页面将被禁用,因为无法在 IIS 管理器中配置自定义日志记录。 有关如何使用自定义日志文件格式的详细信息,请参阅自定义日志记录模块 (IIS 6.0)
  5. 在“目录”下,指定应存储日志文件的路径。 默认为 %SystemDrive%\inetpub\logs\LogFiles

    注意

    最佳做法是将日志文件(例如失败请求跟踪日志)存储在 %systemroot% 之外的目录中。

  6. 在“日志文件滚动更新”部分中,选择以下选项之一:

    • 计划:根据以下值之一来创建新日志文件:

      • 每小时:每小时创建一个新日志文件。
      • 每日:每日创建一个新日志文件。
      • 每周:每周创建一个新日志文件。
      • 每月:每月创建一个新日志文件。
    • 最大文件大小(以字节为单位):在文件达到某个大小(以字节为单位)时创建新日志文件。最小文件大小为 1048576 个字节。 如果将此特性设置为小于 1048576 个字节的值,则会隐式将默认值假定为 1048576 个字节。

    • 不创建新的日志文件:只有一个日志文件,在记录信息的过程中,此文件将不断变大。

  7. 选中“使用本地时间进行文件命名和滚动更新”以指定日志文件命名和滚动更新的时间都使用本地服务器时间。 如果未选定此项,则使用协调世界时 (UTC)。

    注意

    无论此设置为何值,实际日志文件中的时间戳将对从“格式”列表中选择的日志格式使用此时间格式。 例如,NCSA 和 W3C 日志文件格式对时间戳使用 UTC 时间格式。

  8. 在“操作”窗格中,单击“应用”

在服务器级别上配置每服务器日志记录

你可以通过以下方法执行此过程:使用用户界面 (UI) 或直接编辑配置文件。

使用 UI 在服务器级别上配置每服务器日志记录

  1. 在 IIS 管理器的“连接”树视图中,选择你的 Web 服务器。

  2. 在“功能视图”中,双击“日志记录”

  3. 在“日志记录”页面上的“每站点一个日志文件”下,从下拉列表中选择“服务器”。 默认情况下,“站点”处于选中状态。

  4. 在“日志记录”页面上的“日志文件”部分的“格式”下,选择以下日志文件格式之一:

    • IIS:使用 Microsoft IIS 日志文件格式记录关于站点的信息。 此格式由 HTTP.sys 进行处理,并且是“固定” 的基于 ASCII 文本的格式,这意味着你无法自定义记录的字段。 字段由逗号分隔,记录的时间为本地时间。 有关 IIS 日志文件格式的详细信息,请参阅 IIS 日志文件格式 (IIS 6.0)
    • NCSA:使用美国国家超级计算技术应用中心 (NCSA) 公用日志文件格式来记录关于站点的信息。 此格式由 HTTP.sys 进行处理,并且是“固定” 的基于 ASCII 文本的格式,这意味着你无法自定义记录的字段。 字段由空格分隔,记录的时间为带有协调世界时 (UTC) 偏差的本地时间。 有关 NCSA 日志文件格式的详细信息,请参阅 NCSA 通用日志文件格式 (IIS 6.0)
    • W3C:使用集中的 W3C 日志文件格式来记录关于服务器上所有站点的信息。 此格式由 HTTP.sys 进行处理,并且是“可自定义” 的基于 ASCII 文本的格式,这意味着你可以指定记录的字段。 通过单击“日志记录” 页面上的“选择字段” 来指定在“W3C 日志记录字段” 对话框中记录的字段。 字段由空格分隔,记录的时间采用协调世界时 (UTC) 格式。 有关 W3C 日志文件格式的详细信息,请参阅 W3C 扩展日志文件格式 (IIS 6.0)
    • 自定义:对自定义的日志记录模块使用自定义格式。 如果选择此选项,则“日志记录”页面将被禁用,因为无法在 IIS 管理器中配置自定义日志记录。 有关如何使用自定义日志文件格式的详细信息,请参阅自定义日志记录模块 (IIS 6.0)
  5. 在“目录”下,指定应存储日志文件的路径。 默认为 %SystemDrive%\inetpub\logs\LogFiles

    注意

    最佳做法是将日志文件(例如失败请求跟踪日志)存储在 %systemroot% 之外的目录中。

  6. 在“日志文件滚动更新”部分中,选择以下选项之一:

    • 计划:根据以下值之一来创建新日志文件:

      • 每小时:每小时创建一个新日志文件。
      • 每日:每日创建一个新日志文件。
      • 每周:每周创建一个新日志文件。
      • 每月:每月创建一个新日志文件。
    • 最大文件大小(以字节为单位):在文件达到某个大小(以字节为单位)时创建新日志文件。最小文件大小为 1048576 个字节。 如果将此特性设置为小于 1048576 个字节的值,则会隐式将默认值假定为 1048576 个字节。

    • 不创建新的日志文件:只有一个日志文件,在记录信息的过程中,此文件将不断变大。

  7. 选中“使用本地时间进行文件命名和滚动更新”以指定日志文件命名和滚动更新的时间都使用本地服务器时间。 如果未选定此项,则使用协调世界时 (UTC)。

    注意

    无论此设置为何值,实际日志文件中的时间戳将对从“格式”列表中选择的日志格式使用此时间格式。 例如,NCSA 和 W3C 日志文件格式对时间戳使用 UTC 时间格式。

  8. 在“操作”窗格中,单击“应用”

选择要记录的 W3C 字段

你可以通过以下方法执行此过程:使用用户界面 (UI) 或直接编辑配置文件。

使用 UI 选择要记录的 W3C 字段

  1. 在 IIS 管理器的“功能视图”中,双击“日志记录”。

  2. 在“日志记录”页面上的“格式”下的“日志文件”部分,单击“选择字段”。

  3. 在“W3C 日志记录字段”对话框中,选择以下一个或多个选项:

    • 日期 (date):发出请求的日期。
    • “时间 (time)”:发出请求的时间(协调世界时 (UTC))。
    • 客户端 IP 地址 (c-ip):发出请求的客户端的 IP 地址。
    • 用户名 (cs-username):访问服务器的已经过验证用户的名称。 匿名用户会以连字符表示。
    • 服务名 (s-sitename):满足请求的站点实例编号。
    • 服务器名称 (s-computername):已生成日志文件项的服务器的名称。
    • 服务器 IP 地址 (s-ip):已生成日志文件项的服务器的 IP 地址。
    • 服务器端口 (s-port):为服务配置的服务器端口号。
    • 方法 (cs-method):请求的操作,例如 GET 方法。
    • URI 资源 (cs-uri-stem):操作的统一资源标识符或目标。
    • URI 查询 (cs-uri-query):客户端尝试执行的查询(如果有)。 只有动态页面才需要统一资源标识符 (URI) 查询。
    • 协议状态 (sc-status):HTTP 或 FTP 状态代码。
    • 协议子状态 (sc-substatus):HTTP 或 FTP 子状态代码。
    • Win32 状态 (sc-win32-status):Windows 状态代码。
    • 发送的字节数 (sc-bytes):服务器发送的字节数。
    • 接收的字节数 (cs-bytes):服务器接收的字节数。
    • 所用时间 (time-taken):操作所花费的时间(毫秒)。
    • 协议版本 (cs-version):客户端使用的协议版本。
    • 主机 (cs-host):主机名(如果有)。
    • 用户代理 (cs(UserAgent)):客户端使用的浏览器类型。
    • Cookie (cs(Cookie)):发送或接收的 Cookie 内容(如果有)。
    • 引用站点 (cs(Referrer)):用户上次访问的站点。 此站点提供指向当前站点的链接。
  4. 在“操作”窗格中,单击“应用”

配置日志文件滚动更新选项

你可以通过以下方法执行此过程:使用用户界面 (UI) 或直接编辑配置文件。

使用 UI 配置日志文件滚动更新选项

  1. 在 IIS 管理器的“功能视图”中,双击“日志记录”。

  2. 在“日志记录”页面上的“日志文件滚动更新”部分中,选择以下选项之一:

    • 计划:根据以下值之一来创建新日志文件:

      • 每小时:每小时创建一个新日志文件。
      • 每日:每日创建一个新日志文件。
      • 每周:每周创建一个新日志文件。
      • 每月:每月创建一个新日志文件。
    • 最大文件大小(以字节为单位):在文件达到某个大小(以字节为单位)时创建新日志文件。最小文件大小为 1048576 个字节。 如果将此特性设置为小于 1048576 个字节的值,则会隐式将默认值假定为 1048576 个字节。

    • 不创建新的日志文件:此选项意味着只有一个日志文件,在记录信息的过程中,此文件将不断变大。 如果为站点使用单个日志文件,则有助于使用日志分析实用工具,但这也会创建出较大的日志文件,从而影响服务器的整体性能。

  3. 选中“使用本地时间进行文件命名和滚动更新”以指定日志文件命名和滚动更新的时间都使用本地服务器时间。 如果未选定此项,则使用协调世界时 (UTC)。

    注意

    无论此设置为何值,实际日志文件中的时间戳将对从“格式”列表中选择的日志格式使用此时间格式。 例如,NCSA 和 W3C 日志文件格式对时间戳使用 UTC 时间格式。

  4. 在“操作”窗格中,单击“应用”

另请参阅