- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我的 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();
}
将 ILoggerFactory
注入(inject) Startup.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();
}
}
它们之间有什么区别?什么时候使用哪个?
最佳答案
第三个使用ConfigureServices
这是 WebHostBuilder
中的公共(public)方法.第一个使用 ConfigureLogging
这是 IHostBuilder
之一 HostingHostBuilderExtensions
中的扩展方法.
他们都称IServiceCollection
的扩展方法 AddLogging
在 LoggingServiceCollectionExtensions
在 Microsoft.Extensions.Logging
下包裹。 AddLogging
方法首先尝试添加两个单例 ILoggerFactory
和 ILogger<>
和一个可枚举的 LoggerFilterOptions
.然后执行最终调用 ILoggingBuilder
的日志记录操作(AddProvider
)方法来添加由这些提供程序(控制台、Azure)实现的日志提供程序并调用 SetMinimumLevel
添加LoggerFilterOptions
第二种方法直接将日志提供者添加到LoggerFactory
.这些提供商在 LoggerFactory
中被调用调用日志记录方法时。
关于订单,第二个和第三个方法由WebHostBuilder
调用的 UseStartup<TStartup>
方法。
关于c# - ILoggerFactory 与 serviceCollection.AddLogging 与 WebHostBuilder.ConfigureLogging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50744024/
Microsoft的文档绝对糟糕。 我需要将我开发的.net core 2 Web应用程序部署到IIS服务器,但无法获得任何直接答案。这只是我的问题的开始。 IWebHost,WebHostBuild
从 .NET Core 2.0 升级到 .NET Core 2.1 错误WebHostBuilder 只允许创建单个 WebHost 实例 程序.cs namespace WebApp1 {
我有一个 Service Fabric 应用程序,如果配置不正确,我在构建 Web 主机时会遇到异常。对于这种特殊场景,应用程序永远不会启动,Service Fabric 将不断尝试启动/配置新的应用
阅读微软文档后,我仍然感到困惑。我需要将我开发的 .net core 2 Web 应用程序部署到 IIS 服务器,但我无法得到任何直接的答案。这只是我问题的开始。 IWebHost、WebHostBu
我正在迁移使用 .NET Core SDK 1.0.0-preview2-1-003177 构建的解决方案,因为我想在 Visual Studio 2017 中使用它。我使用 .NET Core SD
我的 asp.net core 2.x 应用程序有典型的日志记录要求: 在生产中使用应用洞察力, 在开发环境中控制台和调试记录器 根据类别和日志级别设置一些过滤器 现在我看到至少三个不同的 API 来
我使用下面的代码在我的 .Net-Core 1.2 环境中添加 CommandLine,我可以使用像 dotnet run --urls "http://a.cn.com:5000"--environ
我是一名优秀的程序员,十分优秀!