Как загрузить файл журнала Serilog за текущий день из основного веб-приложения asp.net? - PullRequest
1 голос
/ 06 мая 2019

У меня есть приложение ASP.NET Core 2.0. Я создаю страницу только для разработчиков, которая позволяет мне загружать файлы журналов Serilog.

Файлы журналов имеют дневной интервал смены. Я не могу загрузить файл текущего дня. Выдается IOException, указывающее, что файл используется другим процессом.

Кажется, заблокирован только файл журнала за текущий день.

Есть ли способ освободить то, что контролирует файл, загрузить его, а затем повторно прикрепить его?

public FileContentResult DownloadLog(string name){
string path = Directory.GetCurrentDirectory() + $"\\Logs\{name}"
byte[] = System.IO.File.ReadAllBytes(path); //Exception thrown here
return File(...);
}

1 Ответ

1 голос
/ 08 мая 2019

Когда вы конфигурируете Serilog с WriteTo.File(), вам нужно передать shared: true, чтобы позволить другим процессам читать его одновременно.Т.е.:

.WriteTo.File("logs.txt", shared: true)
...