我正试图从第三方安装一个应用程序,这需要在我的本地IIS中托管一个支持网站。我已经创建了一个网站完全解释在他们的安装指南,但我有一些问题,并想看看IIS日志说什么。非常尴尬的是,问题是我找不到日志文件!
所以我的问题是:IIS7默认将日志存储在哪里?
我正试图从第三方安装一个应用程序,这需要在我的本地IIS中托管一个支持网站。我已经创建了一个网站完全解释在他们的安装指南,但我有一些问题,并想看看IIS日志说什么。非常尴尬的是,问题是我找不到日志文件!
所以我的问题是:IIS7默认将日志存储在哪里?
我认为访问日志的默认位置是
%SystemDrive%\inetpub\logs\LogFiles
否则,在IIS管理器下检查,在左侧窗格中选择计算机,在中间窗格中,在IIS区域中单击“日志”。在那里你会看到所有网站的默认位置(然而这是可覆盖所有网站)
你也可以看看
%SystemDrive%\Windows\System32\LogFiles\HTTPERR
它将包含类似的只表示错误的日志文件。
日志文件的默认位置的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。
最简单的回答是这样的:
(Get-Website * | % { $_.logFile.Directory});ls $GetIISLogs\W3SVC1\*
如果你有不止一个网站,你会得到不止一个答案,所以你需要用“foreach”来查询网站名称和目录…