【发布时间】:2011-10-11 20:43:43
【问题描述】:
我想在一个仅由测试人员在内部使用的简单 c# (WPF) 应用程序中实现一些基本跟踪。我基本上希望测试人员能够查看他们所做工作的日志,然后可选地将其保存到一个文件(他们选择)。这将允许测试人员查看他们迄今为止在测试中所做的工作,并可选择将日志保存到文件中以供后代使用。
在研究如何在 .Net 中实现简单的跟踪(使用 System.Diagnostics.Trace)时,似乎默认答案是使用 log4net(或者可能是 NLog,如 Is log4net dead? 中所引用)。我的问题是我的跟踪不需要功能齐全或有什么特别的,所以实现一个外部库似乎有点矫枉过正(这似乎得到了 Jeff Atwood 本人在How to save the output of a console application 的评论中的支持(和其他地方的其他人,但仍然......))。事实上,如果 log4net 或 NLog 是最好/唯一的答案(即使在我的情况下),我仍然可以接受它(即我并不完全接受使用它们的想法,但对此并不感到非常兴奋),但尽量不要(/只专注于)那个(如果可能的话)......
考虑到这一点,是否有人对如何实现侦听器有任何建议,以便我可以弹出一个带有可见跟踪日志的对话框(例如,通过View Log 按钮),然后可选择保存该对话框的内容(或跟踪日志本身)到文件(例如,通过 `View 中的 Save Log 按钮)?
似乎实现一个侦听器会相对简单将该列表保存到文件(duh),但是如果应用程序长时间保持打开状态并且跟踪日志变得超大怎么办?也许是一个缓冲区类型的集合,它只记录最后的x 消息?有什么建议吗?
【问题讨论】: