集中式 W3C 日志文件 <centralW3CLogFile>
概述
<centralW3CLogFile>
元素指定服务器上所有站点的集中式 W3C 日志设置。
注意
需要将父元素 <log>
的 centralLogFileMode 特性设置为 CentralW3C,以使 <centralW3CLogFile>
元素上的特性生效。 如果 <log>
元素的 centralLogFileMode 特性设置为 CentralBinary 或 Site,将忽略 <centralW3CLogFile>
元素上的特性。
注意
W3C 格式的日志文件是大多数日志分析实用工具可处理的基于文本的文件。 二进制日志文件使用专有存储格式,该格式需要使用能够处理采用该格式的日志文件的应用程序,例如 Microsoft 的 LogParser 实用工具。
兼容性
版本 | 说明 |
---|---|
IIS 10.0 | <centralW3CLogFile> 元素在 IIS 10.0 中未进行修改。 |
IIS 8.5 | <centralW3CLogFile> 元素在 IIS 8.5 中未进行修改。 |
IIS 8.0 | <centralW3CLogFile> 元素在 IIS 8.0 中未进行修改。 |
IIS 7.5 | <centralW3CLogFile> 元素在 IIS 7.5 中未进行修改。 |
IIS 7.0 | IIS 7.0 中引入了 <log> 元素的 <centralW3CLogFile> 元素。 |
IIS 6.0 | <log> 元素替换了 IIS 6.0 CentralW3CLoggingEnabled 标志。 |
安装
在 IIS 7 的默认安装中包含 <log>
元素的 <centralW3CLogFile>
元素。
操作方式
如何为服务器启用集中式 W3C 日志记录
打开 Internet Information Services (IIS) 管理器:
如果使用的是 Windows Server 2012 或 Windows Server 2012 R2:
- 在任务栏上,单击“服务器管理器”,单击“工具”,然后单击“Internet Information Services (IIS)管理器”。
如果使用的是 Windows 8 或 Windows 8.1:
- 按住 Windows 键,按字母 X,然后单击“控制面板”。
- 单击“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。
如果使用的是 Windows Server 2008 或 Windows Server 2008 R2:
- 在任务栏上,单击“开始”,指向“管理工具”,然后单击“Internet Information Services (IIS)管理器”。
如果使用的是 Windows Vista 或 Windows 7:
- 在任务栏上,单击“开始”,然后单击“控制面板”。
- 双击“管理工具”,然后双击“Internet 信息服务(IIS)管理器”。
在“连接”窗格中,单击服务器名称。
在“操作”窗格中,单击“应用”。
配置
特性
属性 | 说明 | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
directory |
可选的字符串属性。 指定写入日志条目的目录。 默认值为 %SystemDrive%\inetpub\logs\LogFiles 。 |
||||||||||||||||||||||||||||||||||||||||||||||
enabled |
可选布尔属性。 指定是否启用集中式 W3C 日志记录。 默认值为 true 。 |
||||||||||||||||||||||||||||||||||||||||||||||
localTimeRollover |
可选布尔属性。 指定是基于本地时间还是协调世界时 (UTC) 创建新的日志文件。 True 值表示新日志文件基于本地时间;false 表示基于 UTC。 默认值为 false 。 |
||||||||||||||||||||||||||||||||||||||||||||||
logExtFileFlags |
可选标志属性。 指定要记录的字段。 logExtFileFlags 特性可具有以下值中的一个或多个。 默认值为以下值: Date 、Time 、ClientIP 、UserName 、SiteName 、ServerIP 、Method 、UriStem 、UriQuery 、HttpStatus 、TimeTaken 、Win32Status 、ServerPort 、UserAgent 、HttpSubStatus 。
|
||||||||||||||||||||||||||||||||||||||||||||||
period |
可选枚举特性。 指定当前日志文件关闭的频率以及启动新日志文件的频率。 period 特性可为以下值之一。 默认为 Daily 。
|
||||||||||||||||||||||||||||||||||||||||||||||
truncateSize |
可选 int64 特性。 指定日志文件内容要截断的大小(字节)。 当 period 特性值为 maxSize时,必须设置此属性。 大小须介于 1048576 (1 MB) 和 4294967295 (4 GB)之间。 默认值为 20971520 (20 MB)。 |
子元素
无。
配置示例
以下配置示例指定 IIS 使用集中式 W3C 日志记录且配置每日 W3C 日志文件轮换。
<log centralLogFileMode="CentralW3C">
<centralBinaryLogFile enabled="true" directory="%SystemDrive%\inetpub\logs\LogFiles" />
<centralW3CLogFile enabled="true" directory="%SystemDrive%\inetpub\logs\LogFiles" period="Daily" />
</log>
代码示例
以下代码示例指定 IIS 使用集中式 W3C 日志记录且配置每日 W3C 日志文件轮换。
AppCmd.exe
appcmd.exe set config -section:system.applicationHost/log /centralLogFileMode:"CentralW3C" /commit:apphost
appcmd.exe set config -section:system.applicationHost/log /centralW3CLogFile.period:"Daily" /commit:apphost
注意
使用 AppCmd.exe 配置这些设置时,必须确保将 commit 参数设置为 apphost
。 这会将配置设置提交到 ApplicationHost.config 文件中的相应位置部分。
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection logSection = config.GetSection("system.applicationHost/log");
logSection["centralLogFileMode"] = @"CentralW3C";
ConfigurationElement centralW3CLogFileElement = logSection.GetChildElement("centralW3CLogFile");
centralW3CLogFileElement["period"] = @"Daily";
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim logSection As ConfigurationSection = config.GetSection("system.applicationHost/log")
logSection("centralLogFileMode") = "CentralW3C"
Dim centralW3CLogFileElement As ConfigurationElement = logSection.GetChildElement("centralW3CLogFile")
centralW3CLogFileElement("period") = "Daily"
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var logSection = adminManager.GetAdminSection("system.applicationHost/log", "MACHINE/WEBROOT/APPHOST");
logSection.Properties.Item("centralLogFileMode").Value = "CentralW3C";
var centralW3CLogFileElement = logSection.ChildElements.Item("centralW3CLogFile");
centralW3CLogFileElement.Properties.Item("period").Value = "Daily";
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set logSection = adminManager.GetAdminSection("system.applicationHost/log", "MACHINE/WEBROOT/APPHOST")
logSection.Properties.Item("centralLogFileMode").Value = "CentralW3C"
Set centralW3CLogFileElement = logSection.ChildElements.Item("centralW3CLogFile")
centralW3CLogFileElement.Properties.Item("period").Value = "Daily"
adminManager.CommitChanges()