Application Insight TelemetryClient在Azure功能控制台中不显示日志

时间:2018-11-08 15:10:42

标签: azure azure-functions azure-application-insights

我实现了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中看到所有自定义日志

enter image description here

问题 当我想进行实时监视时,我在Azure函数日志窗口中看不到自定义日志,该函数显示在我不写的日志下方。

enter image description here

1 个答案:

答案 0 :(得分:0)

这是预期的。您提到的Azure函数日志窗口以TraceWriterILogger的形式显示logs written in functions,包括由函数运行时创建的日志,即您看到的函数执行结果。

使用此Track *方法,遥测客户端将遥测发送给诊断搜索中显示的遥测,这些遥测在功能日志流中不可用。

如果要在功能日志中查看那些Track *,请使用TraceWriterILogger(推荐)输出它们,并在host.json中配置日志级别。