2012-02-15 57 views
1

我有一個剛開始的MVC3網站。我想將日誌記錄添加到此網站,並決定使用Log4Net。我用這個tutorial來設置它,它有點作用,但它不像我預期的那樣工作。MVC3網站中的Log4Net僅在停止站點後登錄到SQL數據庫

我按照說明中使用的網站上的說明設置了日誌記錄。我使用調試器運行該站點,並且在調用Home控制器上的Index操作時應該記錄一條記錄。

我檢查了表,它是空的。我停止了調試器並檢查了我的配置文件。一切看起來不錯。然後,我在記錄完成的代碼行上設置了一個斷點。代碼被擊中,但仍然沒有在我的日誌表中。

我決定打開log4net調試。我修改了我的web.config並再次啓動了調試器。現在,當我檢查我的表格時,它顯示了兩個條目,但我注意到時間戳記是幾分鐘。

經過附加測試後,我發現記錄器僅在我修改web.config文件時沖刷到表中。

首先,這是正常的行爲?

如果沒有,有沒有辦法讓log4net登錄而不停止我的網站?

感謝

更新與解決方案

一旦答案被@tawman提供的,然後我可以在緩衝區大小進行搜索。這是我遇到的問題的原因。

BufferSize是任何寫入之前將排隊的日誌的數量。我將此值更改爲1(與建議的100相反 - 默認值爲500)。

這有我的日誌立即寫入。我不知道設置爲1時是否有任何性能影響,但我將不得不考慮這一點。

回答

4

更改緩衝區大小爲更小的設定log4net Config Examples

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
    <bufferSize value="100" /> 
...