【发布时间】:2018-01-12 08:05:41
【问题描述】:
我在我的 C# WPF 应用程序中使用 NLog 和 SQLite,并且 NLog 配置设置为 SQLite 数据库作为目标。并且登录到 SQLite 数据库工作正常。
现在我想在ListView(或类似的)中显示(部分)日志消息,即将日志消息放在控件可以绑定到的ObservableCollection 中。我想在记录时显示消息,但也有可能过滤时间戳、日志级别、日志消息中的关键字等消息。这样做的好方法是什么?
我考虑编写一个自定义 NLog 目标,将条目放入 ObservableCollection。但这可能会使添加过滤器功能变得困难。另一种可能性可能是以某种方式监视 SQLite 数据库中的更改,读回更改并更新 ObservableCollection。
【问题讨论】:
-
有一个目标“Memory”可以在这里使用。
-
另一个候选对象可能是消息队列目标:github.com/nlog/nlog/wiki/MSMQ-target
-
对于windows窗体,也有control和richtextbox的target,但是这里显然不适用(因为你在wpf上)。
-
尝试设置一个电锯目标并实现 tcp 监听器。
-
如果投反对票,请发表评论,以便我改进问题。