【发布时间】:2018-02-09 17:00:45
【问题描述】:
在 ASP.NET Core 2.0 中我们有这个
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
CreateDefaultBuilder(args) 有许多有用的默认值。然而它contains this:
.ConfigureLogging((context, logging) => {
logging.AddConfiguration(context.Configuration.GetSection("Logging"));
logging.AddConsole(); // HERE IS THE PROBLEM
logging.AddDebug(); // HERE IS THE PROBLEM
})
所以控制台和调试日志提供程序总是被注册。
我以前是这样注册的
if (env.IsDevelopment())
{
// register them here
}
在生产模式下运行时如何删除/取消注册它们? 我的意思不是改变日志记录级别,我的意思是我根本不希望它们在生产模式下注册。
【问题讨论】:
-
CreateDefaultBuilder的创建是为了简化新项目的设置(聚合许多常见的东西)。在最终 2.0 之前,没有DefaultBuilder。我建议您从刚刚链接的源代码中复制代码并自行更改,正如我所说,CreateDefaultBuilder只是为了简化这一步。看看之前是怎么做的:docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/…。问候。 -
@dime2lo 我希望我不必这样做。我对默认设置很满意,除了生产模式下的日志记录。肯定有一种方法可以撤消这些特定的注册。
标签: c# asp.net-core asp.net-core-2.0