当跟踪文件变得太大时截断跟踪文件的有效方法?

时间:2009-04-07 14:57:39

标签: asp.net tracing

我正在使用.NET的内置跟踪机制来跟踪程序执行。问题是跟踪文件可以非常快速地增长到几MB。是否有一种有效的方法在文件超过某一点时截断文件?我想在写入某些东西时进行检查(我有一个继承自TraceListener的自定义类),但这可能会降低性能。也许Timer会是更好的解决方案吗?

有人有什么想法吗?

2 个答案:

答案 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...

当然,你可以抛弃备份文件。

(只是提示:尝试 log4net here)和企业库日志记录块here)!)

答案 1 :(得分:1)

也许使用事件日志跟踪侦听器,因为EventLog可以通过这种方式轻松自动循环。