Azure 门户中的 Application Insights 遥测日志位于何处
Where are located Application Insights Telemetry logs in Azure Portal
我有这个class:
public class TelemetryHelper : ITelemetryHelper
{
private TelemetryClient TelemetryClient { get; set; }
public TelemetryHelper()
{
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
configuration.InstrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"];
TelemetryClient = new TelemetryClient(configuration);
}
#region Input
public Task InfoAsync(DebugMessageType tag = DebugMessageType.Other, string message = null, Exception ex = null, [CallerMemberName] string callerFunction = "", [CallerLineNumber] int lineNumber = 0)
=> OutputInApplicationInsightsAsync(SeverityLevel.Information, tag, message, ex, callerFunction);
public Task ErrorAsync(DebugMessageType tag = DebugMessageType.Other, string message = null, Exception ex = null, [CallerMemberName] string callerFunction = "", [CallerLineNumber] int lineNumber = 0)
=> OutputInApplicationInsightsAsync(SeverityLevel.Error, tag, message, ex, callerFunction);
public Task WarnAsync(DebugMessageType tag = DebugMessageType.Other, string message = null, Exception ex = null, [CallerMemberName] string callerFunction = "", [CallerLineNumber] int lineNumber = 0)
=> OutputInApplicationInsightsAsync(SeverityLevel.Warning, tag, message, ex, callerFunction);
#endregion Input
private Task OutputInApplicationInsightsAsync(SeverityLevel level, DebugMessageType tag = DebugMessageType.Other, string message = null, Exception ex = null, string callerFunction = "")
{
var properties = new Dictionary<string, string> { { "Tag", tag.ToString() } };
if (!string.IsNullOrWhiteSpace(callerFunction))
properties.Add("CallerFunction", callerFunction);
if (ex != null)
properties.Add("Exception", ex.ToString());
TelemetryClient.TrackTrace(message, level, properties);
return Task.CompletedTask;
}
}
我可以这样使用它:
await TelemetryHelper.ErrorAsync(DebugMessageType.Service, ex.Message, ex, nameof(this.RunRemoveTasksAsync));
但是,有人能告诉我 Azure 门户中的这些日志在哪里吗。我已经搜索了好几个小时都找不到
如果 application insights 链接正确并且遥测数据发送成功,您可以通过 application insights 中的这些位置找到它。
首先导航到 Azure 门户 -> 您在代码中链接的应用程序见解。
位置 1:
在 application insights -> Search -> 你可以 select 适当的 "time range" 和 "event type" -> 然后点击 "Refresh" 按钮。可以看到日志:
位置 2: 在应用程序洞察 -> 日志中。您可以编写正确的 Kusto query 来查看您的日志。我看到您正在使用 TelemetryClient.TrackTrace
方法,因此您的日志应该在 traces table 中。您可以按照下面的屏幕截图了解更多详细信息:
我有这个class:
public class TelemetryHelper : ITelemetryHelper
{
private TelemetryClient TelemetryClient { get; set; }
public TelemetryHelper()
{
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
configuration.InstrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"];
TelemetryClient = new TelemetryClient(configuration);
}
#region Input
public Task InfoAsync(DebugMessageType tag = DebugMessageType.Other, string message = null, Exception ex = null, [CallerMemberName] string callerFunction = "", [CallerLineNumber] int lineNumber = 0)
=> OutputInApplicationInsightsAsync(SeverityLevel.Information, tag, message, ex, callerFunction);
public Task ErrorAsync(DebugMessageType tag = DebugMessageType.Other, string message = null, Exception ex = null, [CallerMemberName] string callerFunction = "", [CallerLineNumber] int lineNumber = 0)
=> OutputInApplicationInsightsAsync(SeverityLevel.Error, tag, message, ex, callerFunction);
public Task WarnAsync(DebugMessageType tag = DebugMessageType.Other, string message = null, Exception ex = null, [CallerMemberName] string callerFunction = "", [CallerLineNumber] int lineNumber = 0)
=> OutputInApplicationInsightsAsync(SeverityLevel.Warning, tag, message, ex, callerFunction);
#endregion Input
private Task OutputInApplicationInsightsAsync(SeverityLevel level, DebugMessageType tag = DebugMessageType.Other, string message = null, Exception ex = null, string callerFunction = "")
{
var properties = new Dictionary<string, string> { { "Tag", tag.ToString() } };
if (!string.IsNullOrWhiteSpace(callerFunction))
properties.Add("CallerFunction", callerFunction);
if (ex != null)
properties.Add("Exception", ex.ToString());
TelemetryClient.TrackTrace(message, level, properties);
return Task.CompletedTask;
}
}
我可以这样使用它:
await TelemetryHelper.ErrorAsync(DebugMessageType.Service, ex.Message, ex, nameof(this.RunRemoveTasksAsync));
但是,有人能告诉我 Azure 门户中的这些日志在哪里吗。我已经搜索了好几个小时都找不到
如果 application insights 链接正确并且遥测数据发送成功,您可以通过 application insights 中的这些位置找到它。
首先导航到 Azure 门户 -> 您在代码中链接的应用程序见解。
位置 1:
在 application insights -> Search -> 你可以 select 适当的 "time range" 和 "event type" -> 然后点击 "Refresh" 按钮。可以看到日志:
位置 2: 在应用程序洞察 -> 日志中。您可以编写正确的 Kusto query 来查看您的日志。我看到您正在使用 TelemetryClient.TrackTrace
方法,因此您的日志应该在 traces table 中。您可以按照下面的屏幕截图了解更多详细信息: