我正在使用 .NET 的内置跟踪机制来跟踪程序执行。问题是跟踪文件可以很快增长到几 MB。当文件增长超过某个点时,是否有一种有效的截断文件的方法?我想在编写某些内容时进行检查(我有一个继承自 TraceListener 的自定义类),但这可能会大大降低性能。也许计时器会是一个更好的解决方案?
有人有想法么?
实现自定义跟踪侦听器:
让我们看看如何解决相当常见的任务:管理连续生成的跟踪文件。默认跟踪侦听器实现并不真正适合应该始终处于活动状态的服务应用程序。如果应用程序产生大量的跟踪输出,那么这些信息迟早会耗尽所有磁盘空间。
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(这里)和Enterprise Library Logging Block(这里)!)
也许使用事件日志跟踪侦听器,因为事件日志可以很容易地以这种方式自动循环。