Аналитика приложений в Azure Function App Core v2
Я пытаюсь использовать стандартный ILogger и записывать его в Azure. Сначала я добавил в файл хоста следующее:
{
"version": "2.0",
"Logging": {
"ApplicationInsights": {
"LogLevel": {
"Default": "Trace",
"System": "None",
"Microsoft": "None"
}
}
},
"ApplicationInsights": {
"Instrumentationkey": "xx-xx-xx-xx-xx"
}
}
И это моя функция:
namespace Jobs
{
public static class ExchangeRates
{
[FunctionName("ExchangeRates")]
public static void Run([TimerTrigger("0 0 0 * * *", RunOnStartup =true)]TimerInfo myTimer, ILogger log)
{
string lol1 = "lol1 text";
string lol2 = "lol2 text";
log.LogWarning("adsad");
log.LogDebug("LogDebug", "asdasd", lol2);
log.LogTrace("LogTrace {lol1}, {lol2}", lol1, lol2);
log.LogInformation("LogInfo {lol1}, {lol2}", lol1, lol2);
log.LogError("LogError");
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
}
}
Но логи не добавляются. Я также попытался установить пакет nuget: Microsoft.Extensions.Logging.ApplicationInsights
Я что-то упустил - что нужно, чтобы приложение-функция писала в Application Insights?
1 ответ
Я думаю, что вы запускаете функцию Azure локально с помощью аналитики приложений, верно?
Если да, на самом деле это не рекомендуется, поскольку аналитика приложений интегрирована с функцией Azure на портале Azure.
Но только для тестирования, вы можете просто добавить эту строку настройки "APPINSIGHTS_INSTRUMENTATIONKEY": "the key"
в local.settings.json
(не забудьте установить его как "копировать, если новее"). Примеры настроек вlocal.settings.json
выглядит как показано ниже:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "xxxxxx",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"APPINSIGHTS_INSTRUMENTATIONKEY": "the key"
}
}
Кстати, я также установил пакет nuget Microsoft.Extensions.Logging.ApplicationInsights
в моем тесте.