使用环境变量配置Azure功能的LogLevel

时间:2018-11-21 03:51:51

标签: azure asp.net-core azure-functions

按照Azure documentation,Functions V2使用.NET Core logging filter hierarchy进行配置。

在下面的示例中,将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" 

3 个答案:

答案 0 :(得分:5)

恐怕我们无法使用环境变量配置日志级别。函数主机启动时,它将从host.json中读取日志级别,并使用相应的过滤规则注入ILogger实例。主机配置不是env变量,但是我们可以修改host.json来更改日志级别。

host.json中的v2日志配置。

"logging": {
    "logLevel": {
     // For specific function
     "Function.MyFunction1": "Information",
     // For all functions
     "Function":"Error",
     // Default settings, e.g. for host 
     "default": "None"
    }
}

答案 1 :(得分:5)

扩展Pramod给出的答案

在门户中,导航到“ Azure功能”,转到“配置”刀片,然后按“新应用程序设置”:

  • 名称:AzureFunctionsJobHost__logging__logLevel__Default

  • 值:Error

NB。别忘了您需要按OK(确定),然后再按Configuration(配置)边栏上的Save(保存)。

答案 2 :(得分:0)

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

export AzureFunctionsJobHost__logging__logLevel__default=Error

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

export AzureFunctionsJobHost__extensions__http__routePrefix=just-another-prefix