ASP.NET MVC非核心Serilog正在Startup.cs文件中工作,但是相同的代码在Action方法中不工作

问题描述

我在互联网上进行了很多搜索,但找不到答案。我也很惊讶看到.NET核心上有如此多的内容,而.NET Framework上却没有这个主题

基本上,我正在尝试使用来自ASP.NET MVC应用程序的serilog将日志发送到EventHub。我所要做的就是

var logger = (Serilog.ILogger)new LoggerConfiguration().MinimumLevel.information()
      .MinimumLevel.Override("Host",LogEventLevel.Error) // Only Errors
      .MinimumLevel.Override("Microsoft",LogEventLevel.Error) // Only Errors
      .MinimumLevel.Override("System",LogEventLevel.Error) // Only Errors
      .Enrich.WithMachineName()
      .Enrich.FromLogContext()
      .Enrich.WithExceptionDetails()
      .Enrich.WithEnvironmentUserName()
      .Enrich.WithProperty("Application","web.app") 
      .Writeto.Console()
      .Writeto.AzureEventHub(new CompactJsonFormatter(),"connectionString","eventhubname",restrictedToMinimumLevel: LogEventLevel.information)
          .CreateLogger();

如果我保存在Startup.cs文件中的那段代码,它可以正常工作并且可以看到日志,但是当我在Home控制器的Index Method中编写相同的代码时, logger.Error("there was an error");执行后,浏览器中的网页将无限加载。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)