テキスト メッセージをログ ファイルに記録するために StraemWriter を使用しています。ログ ファイルが存在しない場合は作成し、ファイルの作成日が指定された時刻より前の場合は追加するか、その時刻より前に作成された場合は再作成する必要があります。以下のクラス/コードを使用しています
public static class LogIt
{
private const string LOG_FNAME = @"Logfile.log";
public static void WriteMsg(string msg)
{
bool append = true;
if (File.Exists(LOG_FNAME))
{
//DateTime delDate = DateTime.Now.AddDays(-1);
DateTime delDate = DateTime.Now.AddMinutes(-30);
DateTime fileCreatedDate = File.GetCreationTime(LOG_FNAME);
if (DateTime.Compare(fileCreatedDate, delDate) < 0)
{
Console.WriteLine("DELETE FILE");
File.Delete(LOG_FNAME);
}
}
using (StreamWriter sw = new StreamWriter(LOG_FNAME, append))
{
sw.WriteLine(msg);
}
Console.WriteLine(msg);
}
}
このクラスは、x 分ごとに実行されるタスク スケジューラによって実行される単純なコンソール アプリによって使用されます。
メッセージは次のように書かれています。
LogIt.WriteMsg("Log this message");
メッセージは、ファイルが最初に作成されたときにファイルに記録されますが、ファイルの作成日が削除日を過ぎている場合、ファイルは再作成されますが、それ以降のメッセージはファイルに書き込まれません。
理由についてのアイデアはありますか?