【发布时间】:2011-09-01 22:45:31
【问题描述】:
我正在创建这样的跟踪侦听器:
// Setup log tracing.
Trace.Listeners.Add(new TextWriterTraceListener(MyLogPath));
Trace.AutoFlush = true;
Trace.WriteLine(DateTime.Now.ToString() + "-" + " Program started");
当我检测到文件太大时,我想截断它(或者更确切地说,只取最后 N 行)。为了做到这一点,我想读入文件,但似乎不管我做什么,跟踪侦听器都锁定了它,即尝试删除跟踪侦听器并像这样处理它的流:
// Clear logging.
Trace.Listeners[0].Close();
Trace.Listeners[0].Dispose();
Trace.Listeners.Clear();
,在这样阅读之前:
// Read in existing log.
string[] lines = File.ReadAllLines(MyLogPath);
,给我一个 IO 异常(文件正在被另一个进程使用)。
有什么想法吗?
【问题讨论】: