首页 > 解决方案 > 使用环境变量配置 Azure Function 的 LogLevel

问题描述

根据Azure 文档,Functions V2 使用.NET Core 日志过滤器层次结构进行配置。

在下面的示例中,ILogger 的一个实例被注入到函数的 Run 方法中。

[FunctionName("MyFunction")]
public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger logger, ExecutionContext executionContext)
{
    logger.LogInformation("I don't want to see this in production!"));
}

检查 ILogger 对象时,每个 LoggerInformation 元素的 MinLevel 为 null,这似乎记录了所有级别。

在生产中,我只想在错误级别登录。我希望能够使用环境变量来配置它,但我找不到任何解释如何实现这一点的文档。我尝试添加以下环境变量无效:

"logging__logLevel__Default: "Error" 

标签: azureasp.net-coreazure-functions

解决方案


查看 azure 函数运行时的代码(123),这似乎是可能的。您必须将其设置为

export AzureFunctionsJobHost__logging__logLevel__default=Error

这也适用于其他host.json设置

export AzureFunctionsJobHost__extensions__http__routePrefix=just-another-prefix

推荐阅读