public void ConfigureServices(IServiceCollection services)
{
services.AddLogging(loggingBuilder =>
{
// Configure Serilog
loggingBuilder.AddSerilog();
});
}
public class MyController : Controller
{
private readonly ILogger _logger;
public MyController(ILogger logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("Processing request {RequestId}.", HttpContext.TraceIdentifier);
return View();
}
}
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.Logger(lc => lc
.Filter.ByIncludingOnly(evt => evt.Properties.ContainsKey("RequestId"))
.WriteTo.File(pathFormat: "Logs/Request_{Properties[RequestId]}.log")
)
.CreateLogger();
其中,pathFormat
指定了日志文件的路径和文件名格式,使用了Properties
中的RequestId
来为每个请求创建一个单独的日志文件。将上述代码添加到Program.cs
文件的CreateHostBuilder
方法中即可。
上一篇:ASP.NETCore(.NET5)中的GetUnobtrusiveValidationAttributes等价于什么?
下一篇:ASP.NETCore(.Net6)Web应用程序在运行为服务时抛出System.NotSupportedException异常(服务将无法启动)