任何人都知道任何上帝指南吗?
首先,我创建了一个Application Insight资源并放置:
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.ApplicationInsights": "2.1.0"
}
}
}
}
功能应用程序应用程序设置中的。
我已尝试为这样的功能应用实现nuget包。
创建一个project.json文件并粘贴它:
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
它安装了nuget包(我可以在日志中看到它,一切顺利)。
之后我将这些片段放在我的代码中以使用 telemetry.TrackException(exception)功能:
首先...
var telemetry = new TelemetryClient(new TelemetryConfiguration("INSTRUMENTATION KEY"));
然后:
telemetry.TrackException(e);
在我的捕获中:
c()
当我尝试保存我的Function应用程序时出现此错误:
错误CS1729:'TelemetryConfiguration'不包含带有1个参数的构造函数
答案 0 :(得分:0)
您无需使用Application Insights库来将其与函数一起使用。如果您已经设置了APPINSIGHTS_INSTRUMENTATIONKEY
应用程序设置,则只需将ILogger
接口作为参数添加到您的函数中,它就会自动将日志数据发送到您的Application Insights实例。
可在此处找到完整文档:https://docs.microsoft.com/en-us/azure/azure-functions/functions-monitoring
答案 1 :(得分:0)
.Net Core 3.1 Azure功能的@ChrisGillum答案的补充:
如果从Visual Studio中使用Http trigger
创建新的Azure函数,则示例中将存在以下行:
log.LogInformation("C# HTTP trigger function processed a request.");
将"APPINSIGHTS_INSTRUMENTATIONKEY"
添加到local.settings.json
Values
。
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"APPINSIGHTS_INSTRUMENTATIONKEY": "<YOUR_GUID>"
},
}
请注意,密钥必须位于名为APPINSIGHTS_INSTRUMENTATIONKEY
的应用程序设置中,并且不能包含其他任何内容。
然后会自动添加日志记录:
关于托管值的完整指南: