C# 如何在ASP.Net Core 2.2中为ILoggingBuilder创建配置扩展?
我使用Asp.NETCore2.2,需要登录文件。并尝试使用iLogger工厂:C# 如何在ASP.Net Core 2.2中为ILoggingBuilder创建配置扩展?,c#,.net,logging,asp.net-core,C#,.net,Logging,Asp.net Core,我使用Asp.NETCore2.2,需要登录文件。并尝试使用iLogger工厂: loggerFactory.AddProvider(new MyOwnFileLogProvider()); 但是: 好的,拒绝所有工厂和使用: WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseConfiguration(config)
loggerFactory.AddProvider(new MyOwnFileLogProvider());
但是:
好的,拒绝所有工厂和使用:
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseConfiguration(config)
.UseKestrel()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole();
});
记录器工厂方法被弃用,取而代之的是更新的日志生成器,它完全方便了依赖项注入容器。不过,为自己的记录器提供程序创建记录器生成器扩展并不困难 您基本上只需要向服务集合添加一个
ilogger提供者
:
public static ILoggingBuilder AddConsole(this ILoggingBuilder builder)
{
builder.Services.AddSingleton<ILoggerProvider, CustomLoggerProvider>();
return builder;
}
这将使其用法与使用iLogger工厂的用法非常相似,目前还不清楚您到底想要什么。扩展名方法AddFile的签名?可拓方法的实现?如果您只需要登录到文件,请尝试使用或之类的日志框架
logging.AddFile();
public static ILoggingBuilder AddConsole(this ILoggingBuilder builder)
{
builder.Services.AddSingleton<ILoggerProvider, CustomLoggerProvider>();
return builder;
}
public static ILoggingBuilder AddConsole(this ILoggingBuilder builder)
{
builder.AddProvider(new CustomLoggerProvider>());
return builder;
}