如何从我的 asp.net 核心 Web 应用程序下载当天的 Serilog 日志文件?

How do I download a Serilog log file from the current day from my asp.net core web application?

我有一个 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(...);
}

当你用WriteTo.File()配置Serilog时,你需要传递shared: true以允许其他进程并发读取它。即:

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