Я использую StraemWriter для записи текстовых сообщений в файл журнала. Файл журнала должен быть создан, если он не существует, добавляется, если дата создания файла меньше определенного времени или воссоздана, если создана до этого времени. Я использую класс/код нижеStreamWriter, не записывающий данные
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);
}
}
Этот класс используется простой консольного приложения запустить с помощью планировщика заданий, который проходит каждые х минут.
сообщение записываются следующим образом:
LogIt.WriteMsg("Log this message");
Сообщения записываются если файл изначально создан, однако, когда дата создания файла мимо удаления даты, файл воссоздан, но не последующие сообщения не когда-либо написанных в файле.
Любые идеи о том, почему?
Пробовал отлаживать еще? – Renan
Я воспроизвел ваш код, и он отлично работает, вы уверены, что проблема не в другом месте? –
@Renen, я прошел через код и использовал console.writeline для вывода сообщений, и программа, похоже, работает, но когда файл будет удален, тогда созданный sw.Writeline не пишет текст, просто присутствует файл emtpy. – MPD