我们目前已启用常规 IIS 日志记录,并"One log file per: Site"
选中了该选项,允许每个网站拥有自己的日志文件。我刚刚设置了 IIS 高级日志记录,但找不到类似的选项。所有网站的高级日志记录都在一个文件中完成。如何设置高级日志以便每个网站都有自己的日志文件?
目前的情况如下:
- 在机器级别,我启用了高级日志记录并指定了日志目录
D:\Logs
。 - 对于每个网站,我指定了一个唯一的日志目录,例如
D:\Logs\Website1
。 - 完成这些更改后,我通过运行命令提示符重新启动了 IIS
iisreset
,并成功收到了预期的stop/start
响应。 - 所有日志记录仍在目录中的单个日志文件中完成
D:\Logs
。网站特定目录中未创建新的日志文件。
答案1
这可以通过为每个站点创建一个日志定义来实现。将每个日志定义命名为您想要收集日志的站点,并为您想要记录到该文件的特定站点启用它们。Microsoft 在高级日志记录自述文件中对此进行了详细介绍:
启用和禁用网站的日志记录。可以在 IIS 管理器的服务器级别启用或禁用高级日志记录功能,这也可以启用或禁用较低级别的日志记录(与服务器级别设置相匹配)。如果您想要禁用某些网站或目录的日志记录,同时启用其他网站的日志记录,请在服务器级别启用高级日志记录功能,然后禁用要禁用日志记录的网站/目录的日志定义文件。要禁用日志定义,请执行以下操作:
- 在“连接”窗格中,单击要禁用日志记录的网站或目录。
- 在网站或目录主页上,双击高级日志记录图标。
- 在高级日志记录功能页面中,单击日志定义,然后在操作窗格中单击编辑日志定义。
- 在日志定义页面中,清除已启用复选框。
- 在操作窗格中,单击应用。
- 如果需要,请重复步骤 (3) 至 (5) 以获得更多日志定义。
来源:https://www.iis.net/learn/extensions/advanced-logging-module/advanced-logging-readme
我个人过去在站点级别更改高级日志记录设置时遇到了麻烦,但您也可以使用每个日志定义的过滤器将范围限制在单个站点。