Создание собственного логгера. Обработка ситуации с недоступным или повреждённым файлом - C#
Формулировка задачи:
Добрый день!
Помогите, пожалуйста, решить следующую проблему:
Есть в программе функция записи в лог:
И есть в программе код, который определеяет размер файла, и в случае превышения определенного размера, переименовывает файл и создает другой.
Проблема в том, что если файл недоступен, то будет ошибка. Как поступить, если файл недоступен или поврежден?
Спасибо за помощь!
public void log_function(string error) { StreamWriter sw; FileInfo log_file = new FileInfo(@"D:\Projects\test.log"); sw = log_file.AppendText(); sw.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t")); sw.WriteLine(error); sw.Close(); }
FileInfo log_file = new FileInfo(@"D:\Projects\test.log"); long fileByteSize = log_file.Length; if (fileByteSize >= 102400) { try { File.Move(@"D:\Projects\test.log", @"D:\Projects\log" + DateTime.Now.ToString(" dd MM yyyy hh.mm.ss") + ".txt"); } catch { }
Решение задачи: «Создание собственного логгера. Обработка ситуации с недоступным или повреждённым файлом»
textual
Листинг программы
public void log_function(string error) { StreamWriter sw; FileInfo log_file = new FileInfo(@"D:\Projects\test.log"); try { long fileByteSize = log_file.Length; if (fileByteSize >= 102400) { File.Move(@"D:\Projects\test.log", @"D:\Projects\log" + DateTime.Now.ToString(" dd MM yyyy hh.mm.ss") + ".txt"); } sw = log_file.AppendText(); sw.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t")); sw.WriteLine(error); sw.Close(); } catch { StreamWriter sw_e; FileInfo log_error= new FileInfo(@"D:\Projects\test1.log"); sw_e = log_file.AppendText(); sw_e.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss\t")); sw_e.WriteLine(error); sw_e.Close(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д