[英]How to configure ILoggerFactory in .NET 6
在 .NET 5 Startup.cs class 中有 Configure 方法,它在ILoggerFactory接口中被注入。 见下文:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
loggerFactory.AddFile("Logs/mylog-{Date}.txt");
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
..........
}
在 .NET 6 如何在var app = builder.Build();之后获取 ILoggerFactory? 并调用它的AddFile()方法写入日志如上面的.NET 5。
你可以这样做:
使用 (var scope = app.Services.CreateScope())
{
var loggerFactory = scope.ServiceProvider.GetRequiredService(typeof(ILoggerFactory)); loggerFactory.AddFile("Logs/mylog-{Date}.txt");
}
在 Program.cs 文件中,添加以下代码:
var builder = WebApplication.CreateBuilder(args);
// some initialization.
// example:
builder.Services.AddControllers().AddNewtonsoftJson();
// add logging
builder.Services.AddLogging(logging =>
{
logging.ClearProviders(); // optional (clear providers already added)
logging.AddFile("Logs/mylog-{Date}.txt")
});
最佳答案
安装Serilog.Extensions.Logging.File
nuget package 后,编写以下代码:
app.Services.GetRequiredService<ILoggerFactory>().AddFile("Logs/mylog-{Date}.txt");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.