我在Visual Studio 2017中创建了一个新的ASP.NET Core 2.0 Web应用程序,从而实现了Razor Pages的实现。
在我的 Index.cshtml.cs 文件中,我实现了这个:
public void OnGet()
{
Trace.TraceError("*************** INDEX ERROR ***************");
Trace.TraceWarning("*************** INDEX WARNING ***************");
Trace.TraceInformation("*************** INDEX INFORMATION ***************");
Trace.WriteLine("*************** INDEX WRITELINE ***************");
var telemetry = new Microsoft.ApplicationInsights.TelemetryClient();
telemetry.TrackTrace("*************** INDEX TRACKTRACE ***************");
}
我对Application Insights实例进行了所有配置。
appsettings.json
"记录":{ " IncludeScopes":false, " LogLevel":{ "默认":"跟踪" } },
appsettings.Development.json
"记录":{ " IncludeScopes":false, " LogLevel":{ "默认":"跟踪", "系统":"信息", "微软":"信息" } }
当我运行我的页面并观察日志流页面时,我可以看到telemetry.TrackTrace条目,但不能看到Trace.Trace *条目。
我错过了什么?
答案 0 :(得分:0)
如果您正在使用Asp.Net Core的Application Insights SDK,它只能收集使用ILogger机制发送的跟踪。如果您走这条路线,请按照此处的说明操作: https://github.com/Microsoft/ApplicationInsights-aspnetcore/wiki/Logging
但您似乎正在使用System.Diagnostics.Trace方法进行日志记录。 Application Insights可以捕获这些内容,但需要安装额外的nuget(https://www.nuget.org/packages/Microsoft.ApplicationInsights.TraceListener/2.6.0-beta3),这是支持.net核心应用程序的最新测试版。