gpt4 book ai didi

azure-functions - Azure 函数未登录到 Application Insights

转载 作者:行者123 更新时间:2023-12-03 20:29:26 26 4
gpt4 key购买 nike

我有一个 Azure Functions 项目,该项目已部署到 Function App 以进行开发/测试,并且已成功将日志消息写入 Application Insights。我在同一个 Azure 订阅中将同一个项目发布到一个新的函数应用程序,现在两个应用程序都没有向 Application Insights 记录任何内容。

该项目是使用 Visual Studio(15.8.7 和 Azure Functions 和 Web Jobs Tools 15.9.02009.0)部署的。

我尝试向 host.json 添加一个记录器条目,以将函数类别日志级别显式设置为信息。

Azure Functions 和 Web 作业工具扩展在 Visual Studio 中是最新的。

我还尝试删除 APPINSIGHTS_INSTRUMENTATIONKEY 应用程序设置,然后重新启动应用程序,以便当我单击其中一项功能的“监视器”选项卡时,它会通过向导配置 Application Insights。但最后,它显示消息“您的应用程序离线或应用程序洞察 sdk 需要更新”。

有什么想法可能是错的吗?

最佳答案

另一个没有显示的令人困惑的日志记录来源是将记录器注入(inject)到函数项目中的组件中。例如,您可以注入(inject) Logger<T>进入你的功能

namespace ThingyFunctions{
public class Thingy
{
public Thingy(ILogger<Thingy> log)
{
this.log = log;
}
[FunctionName(nameof(Thingy)]
public async Task Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer)
{
log.LogInformation("Some message here");
}
}
}
默认情况下,该日志消息将被过滤掉。您可以通过更改 host.json 中的日志级别来查看它
"logging": {
"logLevel": {
"default": "Information"
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": false
}
}
}
这将捕获信息级别的所有内容。你也可以通过命名空间来做
"logging": {
"logLevel": {
"ThingyFunctions": "Information"
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": false
}
}
}
我相信你也可以通过函数名来做到这一点
"logging": {
"logLevel": {
"Function.Thingy": "Information"
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": false
}
}
}

关于azure-functions - Azure 函数未登录到 Application Insights,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52833645/

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