C# 应用程序日志丢失

C# 应用程序日志丢失,c#,nlog,azure-application-insights,C#,Nlog,Azure Application Insights,我有几个托管在Azure上的.NET服务,它们都通过NLog适配器(Microsoft.ApplicationInsights.NLogTargetnuget软件包)连接到Application Insights。用法非常简单: var logger = LogManager.GetLogger(this.GetType().Name); logger.LogInfo("Received request from user " + userId); var result = DoSomethin

我有几个托管在Azure上的
.NET
服务,它们都通过NLog适配器(
Microsoft.ApplicationInsights.NLogTarget
nuget软件包)连接到Application Insights。用法非常简单:

var logger = LogManager.GetLogger(this.GetType().Name);
logger.LogInfo("Received request from user " + userId);
var result = DoSomething(userId);
if(result.Success)
    logger.LogInfo("Request successful for " + userId);
else
    logger.LogError("Request failed for " + userId);
Application Insights目标以标准方式在app/web.config中配置:

<nlog>
  <extensions>
    <add assembly="Microsoft.ApplicationInsights.NLogTarget" />
  </extensions>
  <targets>
    <target type="ApplicationInsightsTarget" name="aiTarget" />
  </targets>
  <rules>
    <logger name="*" minlevel="Trace" writeTo="aiTarget" />
  </rules>
</nlog>

一切似乎都在运行,但我最近开始注意到Azure中缺少一些日志。例如,对于给定的
用户ID
,Azure包含
接收到的请求
消息,但没有
成功
失败
消息(我确信在流程中没有发生异常)。此外,对于某些
userId
s,日志完全丢失。我尝试了Application Insights
Search
Analytics
选项卡,但这两个选项卡似乎都缺少我的应用程序发送的部分日志条目


这发生在多个服务中,没有明显的原因,Azure上任何地方都看不到错误/异常。是否有人遇到过类似的问题?

在Azure中运行的应用程序?还是Azure功能?在应用程序退出之前是否执行
NLog.LogManager.Shutdown()
?对于.NET SDK,默认情况下会启用自适应采样。你把它关掉了吗?@RolfKristensen,大多数应用程序都是应用程序服务和WebJobs,所以它们实际上没有“应用程序出口”。它们应该是长时间运行的,并在此过程中写入大量日志。@ZakiMa,当使用
Microsoft.ApplicationInsights.NLogTarget
时,如何关闭采样?这是默认配置(在ApplicationInsights.config中):。现在有一节(不包括事件遥测类型)介绍了跟踪遥测类型。一种方法是进行事件跟踪