Azure TrackTrace未登录到Application Insight

Azure TrackTrace未登录到Application Insight,azure,azure-application-insights,Azure,Azure Application Insights,我有下面的代码。这不是记录跟踪。我不知道为什么。如果可能的话,你能帮我吗 public static void SAPLogger(string Message) { TelemetryConfiguration.Active.InstrumentationKey = "XXX-XXX-XXX"; TelemetryClient TelePositive = new TelemetryClient {

我有下面的代码。这不是记录跟踪。我不知道为什么。如果可能的话,你能帮我吗

public static void SAPLogger(string Message)
        {

            TelemetryConfiguration.Active.InstrumentationKey = "XXX-XXX-XXX";
            TelemetryClient TelePositive = new TelemetryClient
            {
                InstrumentationKey = "XXX-XXX" (Optional Value)
            };


            //TelePositive.TrackRequest(Req);
            TelePositive.TrackTrace(Message, SeverityLevel.Verbose, new Dictionary<string, string> { { "Information", "SAP" } });

        }

我完全不知道为什么这不是日志记录。请帮助

您的示例应用程序可能在发送遥测数据之前退出

DeveloperMode应该使它立即发送,但是,如果您的进程像测试应用程序一样立即存在,那么该进程仍可能在创建和发送web请求之前结束

对于像测试应用程序这样的短期应用程序,您可能需要在最后进行刷新和某种类型的睡眠呼叫,以确保遥测有机会在应用程序退出之前发送

对于使用时间较长的实际应用程序,遥测将在一段时间后进行批处理并发送,或者在满足一定数量的事件后发送,然后发送该批。您的应用程序可能仍然希望在最后刷新/等待,以确保发送任何成批的遥测数据


但在这两种情况下,刷新/等待只应在最后发生一次。不是每一个追踪遥测的电话

项目的可能重复项被缓冲,因此您需要等待、调用Flush或将developer mode设置为true。但是我们将尝试开发者模式。那么John,我们可以在实时应用程序中使用线程睡眠来进行每次日志记录吗?这不是会使应用程序变慢吗?您不希望每个日志都处于睡眠状态,您希望在进程结束之前的最后一次刷新+睡眠,以便发送任何排队的遥测数据。您的示例是一个main,它启动、发送一个事件,然后关闭。这是你真正的应用程序吗?没有真正的应用程序是这样的,这个SAPLoggerstring将从多个方法catch块调用,可能会调用数千次。如果你在生命周期中反复调用这个方法,你不需要睡眠。除非您在遥测客户端上设置了其他上下文,否则您可能希望只创建遥测客户端的一个实例并重用它,而不是为每个跟踪反复创建遥测客户端。
static void Main(string[] args)
        {
            try
            {
                int a = 5;
                int c = a / 2;
                SAPLogger("The value is Success" + c);
            }
}