Создание собственного логгера. Обработка ситуации с недоступным или повреждённым файлом - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Помогите, пожалуйста, решить следующую проблему: Есть в программе функция записи в лог:
Листинг программы
  1. public void log_function(string error) {
  2. StreamWriter sw;
  3. FileInfo log_file = new FileInfo(@"D:\Projects\test.log");
  4. sw = log_file.AppendText();
  5. sw.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t"));
  6. sw.WriteLine(error);
  7. sw.Close();
  8. }
И есть в программе код, который определеяет размер файла, и в случае превышения определенного размера, переименовывает файл и создает другой.
Листинг программы
  1. FileInfo log_file = new FileInfo(@"D:\Projects\test.log");
  2. long fileByteSize = log_file.Length;
  3. if (fileByteSize >= 102400)
  4. {
  5. try
  6. {
  7. File.Move(@"D:\Projects\test.log", @"D:\Projects\log" + DateTime.Now.ToString(" dd MM yyyy hh.mm.ss") + ".txt");
  8. }
  9. catch
  10. {
  11. }
Проблема в том, что если файл недоступен, то будет ошибка. Как поступить, если файл недоступен или поврежден? Спасибо за помощь!

Решение задачи: «Создание собственного логгера. Обработка ситуации с недоступным или повреждённым файлом»

textual
Листинг программы
  1. public void log_function(string error) {
  2.             StreamWriter sw;
  3.             FileInfo log_file = new FileInfo(@"D:\Projects\test.log");
  4.            
  5.             try
  6.                 {
  7.                 long fileByteSize = log_file.Length;
  8.                 if (fileByteSize >= 102400)
  9.                    {
  10.                     File.Move(@"D:\Projects\test.log", @"D:\Projects\log" + DateTime.Now.ToString(" dd MM yyyy hh.mm.ss") + ".txt");
  11.                    }
  12.                 sw = log_file.AppendText();
  13.                 sw.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t"));
  14.                 sw.WriteLine(error);
  15.                 sw.Close();
  16.                 }
  17.  
  18.               catch
  19.                {
  20.                     StreamWriter sw_e;
  21.                     FileInfo log_error= new FileInfo(@"D:\Projects\test1.log");
  22.                    
  23.                     sw_e = log_file.AppendText();
  24.                     sw_e.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t"));
  25.                     sw_e.WriteLine(error);
  26.                     sw_e.Close();
  27.                 }
  28.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы