我有一個可以安裝的使用Common.Logging進行日誌記錄的ASP.Net應用程序。什麼是記錄最好的IFormatProvider?
當寫日誌消息,即:
_log.InfoFormat(CultureInfo.???, "{0}: Writing to the Log", DateTime.UtcNow);
我感到困惑,我應該使用哪個文化。我想要的結果是日誌消息使用服務器的區域設置格式化。這樣當管理員安裝應用程序時,他們可以控制其日誌消息的格式。
有四肢着地的選擇,但沒有一個似乎是正確的選擇:
- CultureInfo.CurrentCulture:這似乎是這將是一個Windows應用程序的正確選擇,但ASP.Net正在改變這種以匹配用戶瀏覽網站 - 所以適合格式化內容以顯示給用戶,但不適用於寫入日誌。
- CultureInfo.CurrentUICulture:與CurrentCulture類似的問題 - 將與當前瀏覽該網站的用戶相匹配。
- CultureInfo.InstalledUICulture:系統安裝文化 - 似乎與安裝的窗口的副本相關,但用戶不可更改。顯然這是有點useless
- CultureInfo.InvariantCulture:這不是用戶可配置的。我想知道這是否是這裏四個選項中最好的,但至少它是一致的,不會因瀏覽網站的人員/媒體窗口的安裝而異。
我在想知道是否需要在我的web.config中爲系統文化添加顯式配置,以便安裝程序可以選擇一種文化。我真正想要的答案就是在ASP.Net將它更改爲與當前用戶匹配之前的任何CultureInfo.CurrentCulture。
注意:我知道我可以關閉ASP.Net,更改每個用戶的CurrentCulture,但UI依賴於此行爲。