我正在尝试通过提供检测密钥向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门户并检查这些日志时,日志不会上传。我无法弄清楚问题出在哪里。我该如何纠正这个问题?
更新:首先,您需要通过nuget:安装Microsoft.ApplicationInsights(这里我安装最新版本2.7.2)
然后,包括以下命名空间:
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();
}
然后转到azure portal - >您的应用程序见解 - >概述刀片 - >单击搜索,您应该看到您上传的日志(如果可能需要几分钟才能在门户上显示):
如果有效,请告诉我。