如何检查customLogs是否已上传到Azure Application Insights

时间:2018-09-19 04:53:13

标签: c# azure azure-application-insights

我试图通过提供如下的检测密钥,将自定义事件添加到Azure Application Insights:

    public void WriteAgentLogs(string message, int AgentId, int ScheduleId)
    {
        TelemetryClient _telemetryClient = new TelemetryClient(new Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration() { InstrumentationKey = "xxxxxxxxxxxxxxxxxxxxxxxxxx" });
        _telemetryClient.InstrumentationKey = ""xxxxxxxxxxxxxxxxxxxxxxxxxx"";
        var parameters = new Dictionary<string, string>();

        parameters.Add("Message", message);
        parameters.Add("AgentId", AgentId.ToString());
        parameters.Add("ScheduleId", ScheduleId.ToString());
        parameters.Add("ScheduleStartDate", DateTime.Now.ToString());

        // check and add metrics here
        var metrics = new Dictionary<string, double>();
        if (duration != null)
        {
            metrics.Add("Duration", (double)duration);
        }

        _telemetryClient.TrackEvent("Agents", parameters, metrics);

        _telemetryClient.TrackTrace("Agents");

        _telemetryClient.TrackTrace(message, SeverityLevel.Information);
    }

代码执行后,我在输出窗口中得到以下信息:

The program '[9672] LoadDataToAppInsights.exe' has exited with code 0 (0x0).
The program '[9672] LoadDataToAppInsights.exe: Program Trace' has exited with code 0 (0x0).

当我返回Azure门户并检查这些日志时,日志没有上载。我无法弄清楚问题出在哪里。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

已更新: 首先,您需要通过nuget安装Microsoft.ApplicationInsights(此处安装了最新版本2.7.2): Apple Universal Link Documentation

然后,包含以下名称空间:

using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;

对于控制台项目,您需要在Trackxx()方法之后添加以下代码:

    System.threading.thread.sleep(5000);
    _telemetryClient.Flush();

这是我的示例代码:

        static void Main(string[] args)
        {
            TelemetryConfiguration.Active.InstrumentationKey = "your key";
            var telemetry = new TelemetryClient();

            var parameters = new Dictionary<string, string>();

            parameters.Add("Message", "message test");
            parameters.Add("AgentId", "Agent test");
            parameters.Add("ScheduleId", "schedule test");
            parameters.Add("ScheduleStartDate", DateTime.Now.ToString());

            var metrics = new Dictionary<string, double>();

                metrics.Add("Duration", 999.99);

            telemetry.TrackEvent("Agents event", parameters, metrics);

            telemetry.TrackTrace("Agents trace");

            telemetry.TrackTrace("message trace", SeverityLevel.Information);
            //telemetry.TrackTrace("0919 after today...");

            System.Threading.Thread.Sleep(5000);
            telemetry.Flush();

            Console.WriteLine("done now.");
            Console.ReadLine();
        }

执行后,如果在输出窗口中显示以下消息,则表示上传成功: enter image description here

然后转到azure门户->您的应用程序见解->概述刀片->单击搜索,您应该会看到您上传的日志(如果可能需要花费几分钟才能显示在门户上): enter image description here

单击日志以查看详细信息: enter image description here

请告诉我它是否有效。