我在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);
以标准方式在app / web.config中配置Application Insights目标:
<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中缺少某些日志。例如,对于给定的userId
,Azure包含Received request
消息,但没有successful
或failed
消息(而且我确定流程中没有例外)。另外,对于某些userId
,日志会完全丢失。我尝试了Application Insights Search
和Analytics
标签,但两者似乎都缺少我的应用程序发送的日志条目的某些部分。
这发生在多个服务上,没有明显的原因,在Azure上的任何地方都看不到任何错误/异常。有没有人遇到过类似的问题?