我正试图从第三方安装一个应用程序,这需要在我的本地IIS中托管一个支持网站。我已经创建了一个网站完全解释在他们的安装指南,但我有一些问题,并想看看IIS日志说什么。非常尴尬的是,问题是我找不到日志文件!

所以我的问题是:IIS7默认将日志存储在哪里?


我认为访问日志的默认位置是

%SystemDrive%\inetpub\logs\LogFiles

否则,在IIS管理器下检查,在左侧窗格中选择计算机,在中间窗格中,在IIS区域中单击“日志”。在那里你会看到所有网站的默认位置(然而这是可覆盖所有网站)

你也可以看看

%SystemDrive%\Windows\System32\LogFiles\HTTPERR

它将包含类似的只表示错误的日志文件。


尝试Windows事件日志,可以得到一些有用的信息


我认为IIS日志的默认位置是:c:\inetpub\wwwroot\log\w3svc


启用跟踪可能是Windows事件日志更好的选择。这为我提供了修复自己的WebService所需的信息。


日志文件的默认位置的100%正确答案是…

%SystemDrive%\inetpub\logs\LogFiles

是的,你可以把它输入浏览器地址栏,它会工作。

为了百分百确定,您需要查看IIS中网站的日志记录。

https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85

i.e.

打开IIS管理器。 在“连接”窗格中选择站点或服务器, 双击日志记录。 站点日志文件的位置可以在Directory字段中找到

编辑:正如安迪在下面的评论中指出的,你需要确保在安装IIS时,你选择启用HTTP日志记录,否则HTTP日志记录将不可用。


一个更简单的方法是使用PowerShell,如下所示:

Get-Website yoursite | % { Join-Path ($_.logFile.Directory -replace '%SystemDrive%', $env:SystemDrive) "W3SVC$($_.id)" }

或者简单地

Get-Website yoursite | % { $_.logFile.Directory, $_.id }

如果你只是需要自己的信息,不介意在你的大脑中分析结果:)。

为了获得加分,可以将| ii附加到要在资源管理器中打开的第一个命令,或将| gci附加到列出文件夹内容的命令。


我相信这是一种更简单的方法来知道你的IIS日志在哪里,而不仅仅是假设一个默认的位置:

进入你的IIS站点,例如Default,点击它,如果启用了日志,你应该看到“Logging”在右边:

打开它,你应该看到文件夹就在那里:

不客气!


我添加这个答案是因为在研究了web之后,我最终得到了这个答案,但仍然不知道该在IIS logs文件夹的哪个子文件夹中查找。

如果您的服务器有多个网站,您将需要知道该网站的IIS ID。在IIS中获取此文件的简单方法是单击左侧面板中的Sites文件夹。每个站点的ID显示在右侧面板中。

知道ID后,我们称其为n,相应的日志位于IIS logs文件夹的W3SVCn子文件夹中。所以,如果你的网站ID是4,并且IIS日志在默认位置,那么日志在这个文件夹中:

%SystemDrive%\inetpub\logs\LogFiles\W3SVC4

Acknowlegements:

通过@jishi回答默认情况下日志的位置。 @Rafid解释了如何找到实际位置(可能不是默认)。 @Bergius的回答提供了一种编程方式来查找特定网站的日志文件夹位置,考虑ID,而不使用IIS。


我在以下位置找到了IIS日志文件。

C: inetpub \ logs \ LogFiles

这有助于解决我的问题。


C: \ inetpub \ logs \日志

检查网站进入网站的身份和高级设置


最简单的回答是这样的:

(Get-Website * | % { $_.logFile.Directory});ls $GetIISLogs\W3SVC1\*

如果你有不止一个网站,你会得到不止一个答案,所以你需要用“foreach”来查询网站名称和目录…