我试图通过提供如下的检测密钥,将自定义事件添加到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门户并检查这些日志时,日志没有上载。我无法弄清楚问题出在哪里。我该如何解决这个问题?
答案 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();
}
然后转到azure门户->您的应用程序见解->概述刀片->单击搜索,您应该会看到您上传的日志(如果可能需要花费几分钟才能显示在门户上):
请告诉我它是否有效。