gpt4 book ai didi

c# - 如何将 Microsoft.Extensions.Logging 与 Application Insights 结合使用来记录事件和指标

转载 作者:行者123 更新时间:2023-11-30 12:39:54 25 4
gpt4 key购买 nike

ILogger 接口(interface)只有一个 Log 方法:

void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter);

Application insights 给了我一个像这样的丰富的 api:

TrackMetric(string name, double value, IDictionary<string, string> properties = null);
TrackException(Exception exception, IDictionary<string, string> properties = null, IDictionary<string, double> metrics = null);
TrackTrace(string message, SeverityLevel severityLevel, IDictionary<string, string> properties);

我应该如何实现自定义 ILogger 并仍然具有应用程序洞察力的所有功能?我能想到的一种方法是定义不同的 TState类型如下:

class Trace
{
public string Message {get;set;};
public IDictionary<string, string> Properties;

public Trace(string message, IDictionary<string, string> properties)
{
this.Message = message;
this.Properties = properties;
}
}

然后当我需要追踪时,我会做类似的事情:

logger.Log<Trace>(LogLevel.Information, eventId, new Trace("sample trace",null));

这样我就切换了trackXXX我在 Log<TState> 中使用的方法基于 TSTate 类型的实现(我为 Exception、Metric 和 Event 创建了类型)。但这看起来太复杂了,无法编写一个简单的跟踪,还有我遗漏的其他方法吗?

最佳答案

当您使用 Application Insights SDK for ASP.NET Core 时并启用 Application Insights,创建内部 ILogger 实现。可以看到here怎么运行的。

所以回答你的问题,如果你正在使用 AI SDK for ASP.NET Core,你应该不需要实现你自己的 ILogger。但是,如果必须,您可以使用链接的实现作为示例。

关于c# - 如何将 Microsoft.Extensions.Logging 与 Application Insights 结合使用来记录事件和指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43455185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com