在IIS Express中配置日志文件字段

时间:2017-08-16 13:41:04

标签: c# asp.net iis logging iis-express

我正在处理日志文件并计算每个网站的流量使用情况。默认日志记录缺少必填字段(cs-hostsc-bytescs-bytes)。虽然我可以在IIS的Logging部分更改这些配置,但我可以在日志记录中选择要包含或排除的字段。我无法找到任何方法来更改IIS Express的这些配置。无论如何要定义我想要包含在IIS Express日志中的字段吗?

使用IIS配置中的Logging,命令行代码或仅编辑配置文件等GUI?

IIS Log file configuration

我找到了IIS Express logFile配置,但在那里,但无法找到有关在那里添加字段的任何内容:

%userprofile%\documents\iisexpress\config\applicationhost.config

SiteDefaults中有logFile配置:

<siteDefaults>
    <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs"/>
    <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
</siteDefaults>

1 个答案:

答案 0 :(得分:0)

要获得完整的答案:您必须首先找到与您的站点相对应的applicationhost.config,然后编辑<logFile>部分。可以在<siteDefaults>中定义它,以对所有站点应用相同的设置,也可以在每个<site>部分中定义它。

要配置默认类别,可以使用logExtFileFlags属性:

logExtFileFlags 属性可以是以下一个或多个值。如果您指定多个值,请用逗号(,)分隔。

在您的情况下,您需要HostBytesRecvBytesSent

要添加自定义字段,可以使用<customFields>小节。

这是一个完整的例子:

<logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" 
 enabled="true" flushByEntryCountW3CLog="2" 
 logExtFileFlags="Host, BytesRecv, BytesSent">
  <customFields>
    <add logFieldName="custom-UUID" sourceType="RequestHeader" sourceName="UUID" />
  </customFields>
</logFile>