Использование StreamWriter для реализации скользящего журнала и удаление сверху

В моем приложении C # winforms 4.0 использовался поточно-ориентированный потоковый преобразователь для внутренней отладочной информации журналирования. Когда мое приложение открывается, оно удаляет файл и создает его заново. Когда приложение закрывается, оно сохраняет файл.

Что я'Мне бы хотелось изменить приложение, чтобы оно добавлялось вместо замены. Это простое исправление.

Однако здесьмой вопрос: я

Я хотел бы сохранить мой файл журнала около 10 мегабайт максимум. Мое ограничение было бы простым. При закрытии файла, если размер файла превышает 10 мегабайт, обрежьте первые 10%.

Есть ли 'лучше' Кстати, затем делаем следующее:

Закройте файлПроверьте, является ли файл> 10 мегЕсли это так, откройте файлРазобрать всю вещьОтбраковывать первые 10%Запишите файл обратноблизко

Редактировать: хорошо, я закончил своим собственным (показанным ниже) предложением переместить оверт на Log4Net, но это хорошее время, но потребуется время, чтобы изучить новую библиотеку и переместить все мои операторы журнала (тысячи) поверх isn 'Время, эффективное для небольшого улучшения, которое я пытался сделать.

  private static void PerformFileTrim(string filename)
  {
     var FileSize = Convert.ToDecimal((new System.IO.FileInfo(filename)).Length);

     if (FileSize > 5000000)
     {
        var file = File.ReadAllLines(filename).ToList();
        var AmountToCull = (int)(file.Count * 0.33); 
        var trimmed = file.Skip(AmountToCull).ToList();
        File.WriteAllLines(filename, trimmed);
     }
  }

Ответы на вопрос(6)

Ваш ответ на вопрос