- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 .net 核心 Web API 项目。我只是想让我的跟踪语句如下所示出现在应用洞察中:
Trace.TraceInformation("Hello World!");
我在调试时在输出窗口中看到日志,但在部署后,我在日志中看不到任何跟踪语句....为什么?
我有 Microsoft.ApplicationInsights.AspNetCore
和 Microsoft.ApplicationInsights.TraceListener
包。
我知道 App insights 已设置,因为请求正在出现,并且我从未收集的性能指标中收到一条跟踪消息(请参阅下面的跟踪消息):
AI: Error collecting 3 of the configured performance counters. Please check the configuration.
Counter \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec: Failed to perform the first read for performance counter. Please make sure it exists. Category: ASP.NET Applications, counter: Requests/Sec, instance MyAPI.exe
Counter \ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time: Failed to perform the first read for performance counter. Please make sure it exists. Category: ASP.NET Applications, counter: Request Execution Time, instance MyAPI.exe
Counter \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue: Failed to perform the first read for performance counter. Please make sure it exists. Category: ASP.NET Applications, counter: Requests In Application Queue, instance
最佳答案
添加 TraceListner 包后,它会为 .NET 完整版添加以下部分:
<system.diagnostics>
<trace autoflush="true" indentsize="0">
<listeners>
<add name="myAppInsightsListener"
type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener"/>
</listeners>
</trace>
</system.diagnostics>
由于 .NET Core 没有自动注册,所以看起来需要注册 ApplicationInsightsTraceListener:
Trace.Listeners.Add(new ApplicationInsightsTraceListener());
这是完整的控制台应用程序(应该也适用于其他类型),它捕获所有三个跟踪(通过 TraceError、TraceInformation 和 TrackTrace):
using System;
using System.Diagnostics;
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.TraceListener;
namespace CoreConsoleApp
{
class Program
{
static void Main(string[] args)
{
TelemetryConfiguration.Active.InstrumentationKey =
"<your ikey>";
Console.WriteLine("Hello World!");
Trace.Listeners.Add(new ApplicationInsightsTraceListener());
Trace.TraceError("my error");
Trace.TraceInformation("my information");
TelemetryClient client = new TelemetryClient();
client.TrackTrace("Demo application starting up.");
Console.ReadKey();
}
}
}
关于c# - Application Insights 不显示 Trace.TraceInformation 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50709695/
我有一个 .net 核心 Web API 项目。我只是想让我的跟踪语句如下所示出现在应用洞察中: Trace.TraceInformation("Hello World!"); 我在调试时在输出窗口中
Trace.Write 之间有什么区别? Writes information about the trace to the trace listeners 和Trace.TraceInformati
我创建了一个 Windows azure 辅助角色。我为辅助角色使用了默认模板和默认 app.config。 辅助角色正在使用 Trace.TraceInformation 来记录消息。 信息
我是一名优秀的程序员,十分优秀!