【问题标题】:Configuring Log Level for Azure Functions为 Azure Functions 配置日志级别
【发布时间】:2019-03-28 22:52:16
【问题描述】:

我有一个配置了 Application Insights 的 Azure Function App。我的函数中有一些 LogTrace() 消息,但它们没有被 AppInsights 捕获。我必须在某处配置最低日志级别吗?

【问题讨论】:

    标签: azure azure-functions azure-application-insights


    【解决方案1】:

    请查看article,了解如何为函数 v1 或 v2 设置日志级别。

    在文件host.json 中,对于文件“Function”,将其值设置为 Trace。然后 LogTrace() 可以登录到应用程序洞察中。

    Azure 函数 v2 的示例 host.json,可以将跟踪消息记录到 Application Insights:

    {
      "version": "2.0",
      "logging": {
        "fileLoggingMode": "always",
        "logLevel": {
          "default": "Information",
          "Host.Results": "Error",
          "Function": "Trace",
          "Host.Aggregator": "Trace"
        }
      }
    }
    

    如果您使用 Visual Studio 发布您的函数应用,您可以在发布前按照上述修改您的 host.json 文件。

    如果您想更改 azure 门户中的日志级别,请按照以下步骤操作:

    在 Azure 门户中,导航到您的函数应用 -> 在函数应用设置中,确保启用读/写,然后在 host.json 中更改日志级别以跟踪。

    【讨论】:

    • 有用的答案,谢谢。请问,是否可以分别控制每个函数的日志级别?下面的 URL 表明可以指定 Function.MyFunction - 但我不确定 MyFunction 在这里指的是什么。例如,这是 C# 中“FunctionName”属性中使用的名称吗? docs.microsoft.com/en-us/azure/azure-functions/…
    • @cbailiss,您能否为此发布一个新问题?
    【解决方案2】:

    为了进一步补充@Ivan Yang 的出色答案,您可以在 Azure Functions 的 v2 中指定每个函数的最低日志记录级别。 (我尚未验证它是否在 v1 中有效/无效)使用他的示例 host.json

    {
      "version": "2.0",
      "logging": {
        "fileLoggingMode": "always",
        "logLevel": {
          "default": "Information",
          "Host.Results": "Error",
          "Function": "Trace",
          "Function.FunctionA": "Warning",
          "Host.Aggregator": "Trace"
        }
      }
    }
    

    Function.FunctionA 假设您有一个名为(通过FunctionName 属性)“FunctionA”的函数,例如:

    [FunctionName("FunctionA")]
    public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "")]HttpRequest req, ILogger log)
    {
      ...function code here
    }
    

    因此,您在FunctionName 属性中指定的任何值都可用于明确定义该函数的最低日志级别。在上面的host.json 示例中,默认情况下,所有函数的最低日志级别为Trace,而FunctionA 的最低日志级别为Warning

    【讨论】:

    【解决方案3】:

    我在 azure 门户中看不到任何 host.json 文件,但我可以从应用程序设置(环境变量)更新它。要替换默认日志级别设置键 AzureFunctionsJobHost__logging__LogLevel__Default 和值 Trace/Debug/Information 或任何您想要的。就像我在我的 host.json 中的 DefaultTrace 但在天蓝色它是 Information。因此,只需为 loglevel 的所有键添加新的环境变量(应用程序设置)并以 AzureFunctionsJobHost__logging__LogLevel__ 为前缀并设置所需的值,您的主机设置将被覆盖。

    您可以阅读更多Here

    【讨论】:

      猜你喜欢
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多