所以在控制台.Net应用程序中,我可以使用(powershell命令)get-content .\log.log -Wait
来查看我的所有log4net事件流,这类似于linux tail
命令,我假设使用了引擎盖下的FileSystemWatcher 。
出于某种原因,每当我有一个asp.net Mvc应用程序时,这都行不通。要清楚,写入日志文件。我可以根据需要get-content .\log.log
多次获取最新结果,但使用-wait
参数时,我从未看到更改滚动过去。
有没有人对这里可能发生的事情有任何见解?
答案 0 :(得分: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窗口立即反映了控制台中的更改。
所以我假设如果某个其他程序有一个对该文件打开的句柄,则更改不会反映到控制台。不幸的是,到目前为止,我还没有找到解决这个问题的方法。