使用asp.net mvc的log4net - 无法监视文件的变化

时间:2012-06-11 15:25:36

标签: asp.net asp.net-mvc logging powershell log4net

所以在控制台.Net应用程序中,我可以使用(powershell命令)get-content .\log.log -Wait来查看我的所有log4net事件流,这类似于linux tail命令,我假设使用了引擎盖下的FileSystemWatcher 。

出于某种原因,每当我有一个asp.net Mvc应用程序时,这都行不通。要清楚,写入日志文件。我可以根据需要get-content .\log.log多次获取最新结果,但使用-wait参数时,我从未看到更改滚动过去。

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

1 个答案:

答案 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窗口立即反映了控制台中的更改。

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