我的 asp.net core 2.x 应用程序有典型的日志记录要求:
在生产中使用应用程序洞察力,
开发环境中的控制台和调试记录器
根据类别和日志级别设置一些过滤器
现在我看到至少三个不同的 API 来配置日志记录:
WebHostBuilder.ConfigureLogging()在 Program.cs 中
public static void Main(string[] args)
{
var webHost = new WebHostBuilder()
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
logging.AddAzureWebAppDiagnostics();
})
.UseStartup<Startup>()
.Build();
webHost.Run();
}
注入ILoggerFactoryStartup.Configure 方法:
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
loggerFactory.AddConsole();
loggerFactory.AddAzureWebAppDiagnostics();
loggerFactory.AddApplicationInsights(app.ApplicationServices,
(category, level) => level >= (category == "Microsoft" ? LogLevel.Error : LogLevel.Information));
}
在 Startup.ConfigureServices 中:
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging(logging =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
logging.AddAzureWebAppDiagnostics();
}
}
那些有什么区别?什么时候用哪个?
繁花不似锦
相关分类