我在WPF应用程序中使用Log4Net。我使用NotifyAppender来更新表单上的TextBox
。这是最老的顶部,最新的底部。
我需要扭转这一局面并拥有最新的顶级。我还希望能够“冻结”视图的更新,以便用户可以滚动浏览消息,然后能够“解冻”它。现在可以显示“缓冲”的任何消息。我假设我需要捕获消息并将它们放在一个集合中,对它进行排序,然后在视图中显示它们,但我不确定如何捕获消息。
实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
您可以考虑使用MemoryAppender并从WPF应用程序以某种方式访问它。但是我认为你最好编写自己的appender(提示:查看MemoryAppender的源代码)并允许这个appender更直接地与你的应用程序通信(即你可以使用服务定位器来连接到一个接收你的日志消息的服务。这个服务反过来由你的ViewModel(假设你使用MVVM)用来填充你的TextBox
。如果你使用一些IoC容器,这可能效果最好,但这不是绝对必要的。 )