. net / c#跟踪-在对话框中查看跟踪日志可选地保存到文件
本文关键字:跟踪 日志 存到文件 net 对话框 | 更新日期: 2023-09-27 18:11:04
我想在一个简单的c# (WPF)应用程序中实现一些基本的跟踪,这只会被测试人员在内部使用。我基本上希望测试人员能够查看他们所做的事情的日志,然后可选地将其保存到(他们选择的)文件中。这将允许测试人员看到他们到目前为止在测试中做了什么,并可选择将日志保存到文件中以供后代使用。
在研究如何在。net中实现简单的跟踪(使用System.Diagnostics.Trace)时,似乎默认的答案是使用log4net(或者可能是NLog,如在"log4net死了吗?"中引用的那样)。我的问题是,我的跟踪不需要功能齐全或任何特别的东西,所以实现一个外部库似乎是多余的(这似乎是由Jeff Atwood自己在如何保存控制台应用程序的输出的评论中支持的(以及其他地方,但仍然……))。如果log4net或NLog是,事实上,最好的/唯一的答案(即使在我的情况下),我可能仍然接受它(也就是说,我并没有完全关闭使用它们的想法,但不是非常兴奋),但尽量不要喋喋不休(/只关注)那一个(如果可能的话)…
考虑到这一点,有没有人对如何实现侦听器有任何建议,这样我就可以弹出一个对话框与跟踪日志可见(例如通过View Log
按钮),然后有选择地保存该对话框(或跟踪日志本身)的内容到一个文件(例如通过Save Log
按钮在"视图")?
这似乎是相对简单的实现一个监听器,简单地记录跟踪到某种类型的集合在应用程序中,在这种情况下,View
简单地显示在一个列表框或东西和Save
只是保存该列表文件(duh)的集合,但如果应用程序保持打开很长一段时间,跟踪日志增长超大?也许是一个缓冲区类型的集合,只记录最后的x
消息?建议吗?
将记录器的输出重定向到文本框将取决于您选择的技术。我推荐log4net或NLog(我自己使用的是第一个),而不是简单地使用。net的内置类(或你自己的),因为它更易于配置,迟早会证明它是有价值的。
我正在使用log4net,并且在网络上有几个例子如何将其输出附加到文本框(如这个,或这个,例如-尽管后一个例子可能缺乏一些UI线程同步在第一次看到,如果在多线程应用程序中使用)。不仅如此,您还可以选择将数据记录到数据库,通过电子邮件发送,将其写入Windows的事件日志,以及许多其他很棒的事情,只需在配置文件中添加几行即可。
对于第一次使用,它可能看起来有点多余,但它真的不是。设置是快速的,有很多例子在那里。一旦您使用了它,您将继续将它添加到您未来的所有项目中。