带有版本控制的 Serilog 文件路径

问题描述 投票:0回答:0

我对 API 版本控制还很陌生。我正在使用 ASP.NET 6.0 和 Serilog 写入日志文件。

现在我已经实现了版本控制,我想让应用程序的 v1.0 写入“Logs/V1.0/logfile.json”,v2.0 写入“Logs/v2.0/logfile.json”。

我可以毫无问题地在我的控制器中获取版本号“1.0”或“2.0”。

[ApiController]
[Route("/v{version:apiVersion}/[controller]")]
[ApiVersion("2.0")]
public class MainController : Controller

    [HttpGet]
    public void MyMethod(ApiVersion version)
    {
        _logger.LogInformation("APIVersion: {ApiVersion}", version);
    }
}

我可以看到 Serilog 将在日志的属性中保存这个“ApiVersion”变量。

"Properties":{
   "ApiVersion":"2.0",
   "RequestPath":"/v2.0/Main/MyMethod",
   ...

那么我如何将所有这些放在一起让 Serilog 将日志保存在不同的文件位置?

我认为它可能与 Program.cs 中的“Log.Logger = new LoggerConfiguration()”有关?我阅读了各种选项,例如 .WriteTo.Map 或 Write.To.Conditional ?

一切似乎都与将不同级别(信息、警告、警报)的日志写入不同位置有关。我也不知道这个设置的最佳实践是什么。

感谢任何帮助!

c# asp.net-core asp.net-web-api .net-6.0 serilog
© www.soinside.com 2019 - 2024. All rights reserved.