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

3

我正在处理日志文件并计算每个网站的流量使用情况。默认日志记录缺少我需要的字段 (cs-host, sc-bytes, cs-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
根据此链接更改此设置是否有帮助? - Subbu
有一个IIS Express管理控制台,https://www.jexusmanager.com/en/latest/ - Lex Li
1
@Subbu 我之前确实读过这篇文章,但这次我更仔细地阅读了一遍,并找到了解决方案。logFilelogExtFileFlags属性正是我在寻找的。非常感谢你。 - Ashkan Mobayen Khiabani
1
好问题。我想补充一下,你可能会在解决方案下的一个隐藏的.vs文件夹中找到applicationhost.config...请查看这个SO帖子 - user2368632
1个回答

3
为了完整回答问题:您必须先找到与您的网站对应的“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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接