我实现了TelemetryClient,以将应用程序日志存储到Application Insight中。下面是我的实现
public class Log : ILog
{
private static TelemetryClient telemetryClient = new TelemetryClient() { InstrumentationKey = ConfigurationManager.AppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] };
public void Error(string message, Exception ex = null)
{
telemetryClient.TrackTrace(message, SeverityLevel.Error);
if (ex != null)
telemetryClient.TrackException(ex);
}
public void Info(string message)
{
telemetryClient.TrackTrace(message, SeverityLevel.Information);
}
public void Verbose(string message)
{
telemetryClient.TrackTrace(message, SeverityLevel.Verbose);
}
public void Warning(string message)
{
telemetryClient.TrackTrace(message, SeverityLevel.Warning);
}
public TelemetryClient TelemetryClient
{
get
{
return telemetryClient;
}
}
}
我可以在ApplicationInsight中看到所有自定义日志
问题 当我想进行实时监视时,我在Azure函数日志窗口中看不到自定义日志,该函数显示在我不写的日志下方。
答案 0 :(得分:0)
这是预期的。您提到的Azure函数日志窗口以TraceWriter
或ILogger
的形式显示logs written in functions,包括由函数运行时创建的日志,即您看到的函数执行结果。
使用此Track *方法,遥测客户端将遥测发送给诊断搜索中显示的遥测,这些遥测在功能日志流中不可用。
如果要在功能日志中查看那些Track *,请使用TraceWriter
或ILogger
(推荐)输出它们,并在host.json中配置日志级别。