我在 .net core Web 应用中使用 App Insights,并且可以成功在应用见解日志中查看遥测数据。我现在希望能够推送我自己的日志事件,但似乎无法让它工作(即我的自定义日志事件不会出现在应用程序见解中)。我的代码如下:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddApplicationInsights(app.ApplicationServices);
loggerFactory.AddDebug();
var logger = loggerFactory.CreateLogger<Startup>();
logger.LogInformation("I am a log event");
我还尝试明确设置日志级别,例如:
loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Debug);
但我从未在应用洞察中看到“我是日志事件”文本。
谁能告诉我如何解决这个问题?
最佳答案
- 您需要为此添加 Application Insights 日志捕获模块。选择适当的包 - 以下之一:
- Microsoft.ApplicationInsights.TraceListener(捕获 System.Diagnostics.Trace 调用)
- Microsoft.ApplicationInsights.EventSourceListener(用于捕获 EventSource 事件)
- Microsoft.ApplicationInsights.EtwListener(至 捕获 ETW 事件)
- Microsoft.ApplicationInsights.NLogTarget
- Microsoft.ApplicationInsights.Log4NetAppender
文档部分:Explore .NET trace logs in Application Insights
- 此外,您还可以直接使用
TelemetryClient
。它有更多选项,而不仅仅是记录器使用的TrackTrace
。
//TelemetryClient telemetryClient = new Microsoft.ApplicationInsights.TelemetryClient();
...
telemetryClient.TrackEvent("<EventName>");
telemetryClient.TrackMetric("<metric name>", 1);
telemetryClient.TrackTrace("message", SeverityLevel.Information);
文档部分:Application Insights API for custom events and metrics
对于现场示例,您可以查看 feature test int ApplicationInsights-aspnetcore
存储库。
关于c# - 从 .net core 自定义日志记录到应用程序见解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44438334/