【问题标题】:Completely remove console logging from .NET Core 2.0 Web API从 .NET Core 2.0 Web API 中完全删除控制台日志记录
【发布时间】:2018-02-06 09:41:44
【问题描述】:

我这样做了:

public static IWebHost BuildWebHost(string[] args)
{
    return WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseUrls("http://0.0.0.0:5000")
        .ConfigureLogging(ConfigureLogging)
        .Build();
}

private static void ConfigureLogging(WebHostBuilderContext hostingContext, ILoggingBuilder logging)
{   
    logging.ClearProviders();
}

还有我的appsettings.json

{

}

但仍然.. 我将异常记录到Console - 有人可以解释原因吗?指针?

【问题讨论】:

  • ...你在哪里以及如何使用ConfigureLogging?拥有这样的方法不仅会禁用日志记录……
  • 搭建web主机时调用,更新答案。
  • 它应该像那样工作。您的问题标记为“serilog”,您使用 Serilog 吗?您在其他地方还有其他与日志记录相关的设置吗?
  • 我想使用Serilog,但我目前没有,第 1 步是从框架/CLR/Kestrel 中删除所有日志记录 - 然后我将只添加 serilog Json 日志记录。
  • 你能从命令行而不是在 Visual Studio 中实际运行应用程序吗? – 另外,如果您无法分享更多内容并且无法在minimal reproducible example 中重现问题,那么恐怕我们无法帮助您。

标签: asp.net-web-api logging asp.net-core serilog


【解决方案1】:

您可以像这样在创建虚拟主机时配置日志记录

 private static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
                .ConfigureLogging(config => {
                    config.ClearProviders();
                })
                .UseKestrel()
                .UseStartup<Startup>();

config.ClearProviders() 将删除所有日志记录服务并且只产生最少的信息

【讨论】:

    【解决方案2】:

    框架有一个默认的ILoggerFactory,如果没有注册,它将使用它。

    当您添加UseSerilog() 时,这将替换默认工厂,并且默认控制台日志记录将消失。

    【讨论】:

    • 你的意思可能是AddSerilog?但即使我这样做:logging.AddSerilog(logger, true); logging.SetMinimumLevel(LogLevel.None);,我的控制台中仍然会出现异常。
    • 该框架只有一个记录器工厂,它由连接到日志提供程序的 Web 主机创建。 OP 在 Web 主机构建器中调用 loggerBuilder.ClearProviders() 的方式应正确清除所有默认提供程序,从而使所有日志变为无效。根据您所指的UseSerilog(),这应该清除现有的提供者。
    • @Marcus 没有; github.com/serilog/serilog-aspnetcore 取代了旧的兼容库,现在提供 UseSerilog() 而不是 AddSerilog() - 那里的 README 应该会有所帮助
    猜你喜欢
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    相关资源
    最近更新 更多