ログファイルの作成を続行する必要がある場合は、トレースを使用することをお勧めしますか?このようにトレースに「リスナー」を付けることができます。
Trace.Listeners.Add(new TextWriterTraceListener("myfilename.txt"));
もちろん、ファイル名を渡しても自動フラッシュは行われず、ファイルが閉じるか、バッファがいっぱいになるまでファイルには何も含まれません。したがって、プログラムの開始時にストリームを作成できます。
FileInfo fi = new FileInfo("myLogFile.txt");
StreamWriter _sw;
void Main()
{
_sw = fi.CreateText();
_sw.AutoFlush = true;
Trace.Listeners.Add(new TextWriterTraceListener(sw));
}
void Close()
{
if(_sw != null)
{
_sw.Flush();
_sw.Dispose();
}
}
次に、プログラムで、「ログ」への書き込みごとにファイルを開いたり閉じたりする代わりに、これを行うことができます。
Trace.WriteLine("My message here");
トレースにはカテゴリと呼ばれるクールなものもあり、ログに最適です...
Trace.WriteLine("My message here", "INFO");
//Output:
//INFO: My message here
私が見つけた1つのことは、一部のシステムではテキストファイルを開くことができないが、そのコピーを作成して開くことができ、元のファイルが引き続き入力されることです。