0

get-content .\log.log -Wait因此,在控制台 .Net 应用程序中,我可以使用类似于 linux命令的(powershell 命令)观看我的所有 log4net 事件流,tail并且我假设在后台使用 FileSystemWatcher。

出于某种原因,每当我有一个 asp.net Mvc 应用程序时,这都不起作用。需要明确的是,日志文件被写入。我可以get-content .\log.log根据需要多次获得最新结果,但是使用-wait参数我永远看不到更改滚动过去。

有人对这里可能发生的事情有任何见解吗?

4

1 回答 1

1

更新:为我的案例找到了一个可行的解决方案,不确定这是否会对您有所帮助。

我没有使用 PowerShell,而是下载了 win-bash,现在我正在使用这个熟悉的 Unix 命令,它非常适合我。

tail -f access.log

我对.Net 编程不太熟悉。在您的情况下,使用 win-bash 项目的 bash.exe 而不是 PowerShell 可能是一个可行的解决方案吗?


尝试在 PowerShell 中“跟踪”Apache 访问日志时遇到类似问题。

Get-Content .\access.log -Wait

我注意到,当我的 Apache HTTP 服务器运行时,它有一个对 acccess.log 开放的句柄,并且 -Wait 不起作用。停止 HTTP 服务器会释放句柄,当我使用文本编辑器对 access.log 进行手动更改时,我的 PowerShell 窗口会立即在控制台中反映更改。

所以我假设如果其他程序有一个打开文件的句柄,更改不会反映到控制台。不幸的是,到目前为止我还没有找到解决这个问题的方法。

于 2012-08-16T17:07:59.093 回答