将NLog与SQLite和WPF控件相结合

时间:2018-01-12 08:05:41

标签: c# wpf sqlite nlog

我在C#WPF应用程序中使用NLog和SQLite,并且以SQLite数据库作为目标设置NLog配置。并且登录到SQLite数据库工作正常。

现在我想在ListView(或类似)中显示(某些)日志消息,即将日志消息放在控件可以绑定的ObservableCollection中。我希望在记录消息时显示消息,但也可以按时间戳,日志级别,日志消息中的关键字等过滤消息。这样做的好方法是什么?

我考虑过编写一个自定义NLog目标,将条目放在ObservableCollection中。但这可能会使添加过滤器功能变得困难。另一种可能性是以某种方式监视SQLite数据库中的更改,回读更改并更新ObservableCollection

1 个答案:

答案 0 :(得分:1)

如果您希望在程序运行之间保留日志,那么我会说,继续将它们保存到SQLite,就像您现在所做的那样,并编写一个表单,根据您想要的标准查询该数据库。我使用NHibernate来处理数据库IO也做了类似的事情。

但是,如果在程序运行期间只需要日志,则执行与上述相同的操作,但使用内存中的SQLite数据库或使用NLog的内存目标并使用LINQ查询该数组列表