Создание собственного логгера. Обработка ситуации с недоступным или повреждённым файлом - 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();
}
}