2013-02-28 61 views
0

我想建立在使用StringBuilder存儲器的日誌文件,所以我有一個如何通過多個請求保留變量內容?

private StringBuilder logFile = new StringBuilder(); 
在我的控制器類

。晚於我將日誌行追加到該對象。

但是在每個請求之後它被清除。如何在多個請求/視圖期間保留內容?什麼是最好的方法?

回答

0

您可以使用靜態字段(確保正確同步對其的訪問)或直接將值附加到文件。或者簡單地使用專爲此目的而設計的日誌框架。你不需要使用第三方,.NET已經有了很好的內置日誌功能(查看System.Diagnostics命名空間)。

+0

什麼叫 「正確同步訪問」 是什麼意思? – 2013-02-28 11:00:58

+0

您知道,標準同步技術,「鎖」和東西,您需要確保單個線程訪問共享資源時所做的事情。 – 2013-02-28 11:14:22

+0

謝謝,這是解決方案。我沒有在控制器類中使用私有字段,而是使用靜態字段創建了一個新的靜態類,並保留了其內容。 – 2013-02-28 11:25:09

0

我建議使用log4Net來滿足任何日誌需求,像cham一樣工作,並且完全符合您的需求。

0

您可以使用SessionCache用於存儲請求之間的數據,例如:

Session["data"] = logFile; 

,然後檢索:

logFile = Session["data"] as StringBuilder; 
+0

謝謝,但雖然它當然有效,但我想避免它,因爲我讀到使用會話變量是不好的設計。 – 2013-02-28 10:59:10

相關問題