[英]How to do logging with WPF?
我正在使用MVVM模式編寫WPF應用程序,並在選定位置使用Prism進行松散耦合,並且我希望在窗口中顯示日志消息並將其寫入文件。 每個方向的消息子集可能不一樣。
我想我應該通過EventAggregator
(觀察者模式的MS-Prism實現)發布消息,並且有兩個對象訂閱:一個更新LogWindowViewModel
,另一個使用Enterprise Library記錄器記錄。 這是一個好主意還是我復制已經實現的東西?
每個輸出中日志消息不同的事實是限制因素。
擴展塊可能就足夠了,定義CustomTraceListener
或ILogFilter
可能會為您解決問題。 這樣可以避免使用EventAggregator
。
歸結為誰知道記錄的內容和位置。 這些差異是否取決於日志記錄引擎中的值,例如嚴重性? 它們是由日志引擎的消費者驅動,因此與類本身緊密耦合? 這些類型的問題將決定您的選擇。
在不得不依賴於使用EventAggregator
之前,利用日志記錄塊中的擴展點將是我的首選。
我認為一個想法很好。 似乎沒有那么多功能可以復制
我使用Common.Logging作為數據收集器,過濾器和分配器,用於可比較的東西,並為我自己的處理和ui輸出編寫了一個自定義appender。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.