【问题标题】:Configure LogLevel of Azure Function using environment variables使用环境变量配置 Azure Function 的 LogLevel
【发布时间】:2019-04-23 14:33:30
【问题描述】:

根据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" 

【问题讨论】:

  • 您是否检查了host.json 中的日志记录配置,或者您只想使用环境变量?
  • 我想看看是否可以使用环境变量控制 LogLevel,但我不熟悉 host.json 文件。使用模拟器在本地调试 Function 时,我可以看到自动生成了一个 host.json 文件,但不包含任何日志记录配置。当我手动编辑文件时,我可以成功设置日志级别。本地开发时可以控制这个文件的生成吗?
  • 手动编辑是唯一方式,生成由VS的Azure函数模板引擎控制。
  • 如何实时更改该值(主机文件或其他)?我不希望默认启用详细,但我可能希望启用它几分钟而无需重新部署...这可能吗?

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


【解决方案1】:

扩展Pramod给出的答案

在门户中,导航到 Azure 功能,转到配置边栏选项卡并按“新应用程序设置”:

  • 姓名:AzureFunctionsJobHost__logging__logLevel__Default

  • 值:Error

注意。不要忘记您需要按 OK,然后还按 Configuration 边栏选项卡上的 Save。

【讨论】:

    【解决方案2】:

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

    export AzureFunctionsJobHost__logging__logLevel__default=Error
    

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

    export AzureFunctionsJobHost__extensions__http__routePrefix=just-another-prefix
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 2022-08-13
    • 1970-01-01
    • 2019-12-22
    • 2013-05-27
    • 2012-01-11
    • 2016-08-11
    相关资源
    最近更新 更多