应用程序见解不适用于 Azure Functions 中的启动 DI
Application insights not working with startup DI in Azure Functions
-
dependency-injection
-
azure-application-insights
-
azure-functions
-
azure-functions-runtime
-
azure-function-async
我正在尝试将来自 Configure class 的消息记录到 Application Insights。虽然消息已正确记录在 运行 方法中,但我在哪里添加 polly,它不会将消息发送到 Appinsights。
//我可以从这里记录消息。
[FunctionName("Function1")]
public async Task Run(string msg,
ILogger log)
{
log.LogInformation("An error occurred.");
}
// 但不是从这里开始。
[assembly: FunctionsStartup(typeof(Startup))]
namespace TestFunc2
{
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.HTTPExtension();
}
}
public static class DependencyExtension
{
public static IServiceCollection HTTPExtension(this IServiceCollection services)
{
services.AddHttpClient<Function1>("client", (provider, client) =>
{
var logger = provider.GetService<ILogger<Function1>>();
logger.LogInformation("func2");
logger.LogError("func2");
client.BaseAddress = new Uri("http://www.ggl.com");
client.DefaultRequestHeaders.Add("Accept", "application/json");
});
return services;
}
}
}
昨天有人 运行 创建了这个示例 - 看看是否有帮助:
https://github.com/Runamok81/AzureFunctionHttpClientFactoryPollyLogging
另一件需要注意的事情是,如果您现在生成自己的 ILogger 实例,则需要将其显式添加为 host.json
中的日志类别。我不知道这里是否是这种情况,因为您要求的是我认为应该添加的 Function1 实例,但是例如,我在这里创建了一个带有字符串“Startup”的实例:
所以我必须更新 host.json
以确保它包含此类型的 logLevel “Information”:
我现在可以将日志推送到 App Insights。我正在处理 github 问题,Here 它被告知我们需要在 host.json 中添加日志记录作为解决方法,以确保它覆盖预定义的配置。
这是我们需要在 host.json
中添加的配置
{
"version": "2.0",
"logging": {
"logLevel": {
"Default": "Information"
}
}
}
dependency-injection
azure-application-insights
azure-functions
azure-functions-runtime
azure-function-async
我正在尝试将来自 Configure class 的消息记录到 Application Insights。虽然消息已正确记录在 运行 方法中,但我在哪里添加 polly,它不会将消息发送到 Appinsights。
//我可以从这里记录消息。
[FunctionName("Function1")]
public async Task Run(string msg,
ILogger log)
{
log.LogInformation("An error occurred.");
}
// 但不是从这里开始。
[assembly: FunctionsStartup(typeof(Startup))]
namespace TestFunc2
{
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.HTTPExtension();
}
}
public static class DependencyExtension
{
public static IServiceCollection HTTPExtension(this IServiceCollection services)
{
services.AddHttpClient<Function1>("client", (provider, client) =>
{
var logger = provider.GetService<ILogger<Function1>>();
logger.LogInformation("func2");
logger.LogError("func2");
client.BaseAddress = new Uri("http://www.ggl.com");
client.DefaultRequestHeaders.Add("Accept", "application/json");
});
return services;
}
}
}
昨天有人 运行 创建了这个示例 - 看看是否有帮助:
https://github.com/Runamok81/AzureFunctionHttpClientFactoryPollyLogging
另一件需要注意的事情是,如果您现在生成自己的 ILogger 实例,则需要将其显式添加为 host.json
中的日志类别。我不知道这里是否是这种情况,因为您要求的是我认为应该添加的 Function1 实例,但是例如,我在这里创建了一个带有字符串“Startup”的实例:
所以我必须更新 host.json
以确保它包含此类型的 logLevel “Information”:
我现在可以将日志推送到 App Insights。我正在处理 github 问题,Here 它被告知我们需要在 host.json 中添加日志记录作为解决方法,以确保它覆盖预定义的配置。
这是我们需要在 host.json
中添加的配置{
"version": "2.0",
"logging": {
"logLevel": {
"Default": "Information"
}
}
}