我正在使用.NET的内置跟踪机制来跟踪程序执行。问题是跟踪文件可以非常快速地增长到几MB。是否有一种有效的方法在文件超过某一点时截断文件?我想在写入某些东西时进行检查(我有一个继承自TraceListener的自定义类),但这可能会降低性能。也许Timer会是更好的解决方案吗?
有人有什么想法吗?
答案 0 :(得分:4)
实现自定义跟踪侦听器:
让我们看看我们如何解决相当常见的任务:管理连续生成的跟踪文件。默认跟踪侦听器实现不适合应该始终处于活动状态的服务应用程序。如果应用程序产生大量跟踪输出,那么这些信息迟早会耗尽所有磁盘空间。
http://www.codeproject.com/KB/dotnet/customnettracelisteners.aspx?display=Print
通过这个例子,你可以像这样创建日志块:
MyTrace.txt (recent trace information);
MyTrace00.txt (trace history backup);
MyTrace01.txt (trace history backup);
and so on...
当然,你可以抛弃备份文件。
答案 1 :(得分:1)
也许使用事件日志跟踪侦听器,因为EventLog可以通过这种方式轻松自动循环。