繁体   English   中英

.NET中如何配置ILoggerFactory 6

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM