如何在.NET 6中配置ILoggerFactory并调用AddFile方法
在.NET 6中获取ILoggerFactory并配置文件日志
在.NET 6的极简Web应用模型里,执行var app = builder.Build();之后,你可以通过app.Services(这是一个IServiceProvider实例)获取ILoggerFactory,再调用AddFile方法,就能实现和.NET 5示例中相同的日志写入效果。
具体代码示例如下:
var builder = WebApplication.CreateBuilder(args); // 按需添加其他服务配置,比如控制器、授权等 builder.Services.AddControllers(); var app = builder.Build(); // 从服务容器中获取ILoggerFactory实例 var loggerFactory = app.Services.GetService<ILoggerFactory>(); if (loggerFactory != null) { loggerFactory.AddFile("Logs/mylog-{Date}.txt"); } // 后续中间件配置 if (app.Environment.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapControllers(); app.Run();
补充说明
- 要确保你已经安装了提供
AddFile扩展方法的NuGet包(比如Serilog.Extensions.Logging.File),否则会找不到该方法。 - 如果确定
ILoggerFactory已经在服务容器中注册,也可以用app.Services.GetRequiredService<ILoggerFactory>(),它会在服务不存在时直接抛出异常,省去null判断。
内容的提问来源于stack exchange,提问作者Zohidbek Abduqodir
相关产品推荐
相关产品推荐

