如何使用WPF进行日志记录?

时间:2011-03-04 13:39:54

标签: wpf logging mvvm prism

我正在使用MVVM模式编写WPF应用程序,并在选定位置使用Prism进行松散耦合,并且我希望在窗口中显示日志消息并将其写入文件。每个方向的消息子集可能不一样。

我想我应该通过EventAggregator(观察者模式的MS-Prism实现)发布消息并订阅两个对象:一个更新LogWindowViewModel,另一个使用Enterprise Library记录器记录。这是一个好主意还是我复制了已经实现过的东西?

3 个答案:

答案 0 :(得分:2)

每个输出中日志消息不同的事实是限制因素。

Extending the block可能就足够了,定义CustomTraceListenerILogFilter可能会对您有所帮助。这样可以避免使用EventAggregator

归结为谁知道记录的内容和位置。这些差异是否取决于日志记录引擎中的值,例如严重性?它们是由日志引擎的消费者驱动,因此与类本身紧密耦合?这些类型的问题将决定您的选择。

在依赖使用EventAggregator之前,利用记录块中的扩展点将是我的首选。

答案 1 :(得分:0)

我认为一个想法很好。似乎没有那么多功能可以复制

答案 2 :(得分:0)

我使用Common.Logging作为数据收集器,过滤器和分配器,用于可比较的东西,并为我自己的处理和ui输出编写了一个自定义appender。