2012-06-11 20 views
0

因此,在一個控制檯.Net應用程序中,我可以通過使用(powershell命令)get-content .\log.log -Wait來觀察我所有的log4net事件流,它與linux tail命令類似,我假設在引擎蓋下使用FileSystemWatcher。log4net與asp.net mvc - 無法監視文件的變化

出於某種原因,每當我有一個asp.net Mvc應用程序,這將無法正常工作。要清楚,日誌文件被寫入。我可以根據需要多次調整get-content .\log.log並獲得最新的結果,但使用-wait參數我永遠不會看到這些變化滾動過去。

有沒有人對這裏可能發生的事情有所瞭解?

回答

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

所以我假設如果其他程序有一個句柄打開文件,更改不會反映到控制檯。不幸的是,到目前爲止我還沒有找到解決這個問題的方法。

+0

我認爲這個問題是與文件鎖定有關,但我更關心的是log4net不應該這樣做!我希望更多的配置設置將釋放該鎖。順便說一句,爲什麼選擇cygwin的雙贏? –

+0

我之前使用過cygwin,但現在我沒有安裝cygwin,win-bash似乎很快又簡單。剛下載並開始使用bash.exe,而cygwin則需要安裝。如果我碰巧需要更多的類Unix環境,我可能會棄用bash並再次開始使用cygwin。 – Perttu