Configuring Log Level for Azure Functions

phi*_*hil 6 azure-application-insights azure-functions

我有一个配置了应用程序见解的Azure功能应用程序。我的函数中包含一些LogTrace()消息,但AppInsights并未捕获它们。我是否必须在某处配置最低日志级别?

Bla*_*len 16

为了进一步添加@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"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 修改文件来更改日志级别并不理想 - 有没有办法通过 ENV 变量或应用程序配置来做到这一点? (2认同)
  • 我实际上已经找到了它并且它有效!/sf/ask/3738351431/ (2认同)

Iva*_*ang 8

请查看这篇文章,了解如何为功能v1或v2设置日志级别。

在文件中host.json,对于“功能”字段,将其值设置为“跟踪”。然后可以将LogTrace()登录到应用程序见解中。

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

{
  "version": "2.0",
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information",
      "Host.Results": "Error",
      "Function": "Trace",
      "Host.Aggregator": "Trace"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

而且,如果您使用Visual Studio发布功能应用程序,则可以在发布之前按照上述说明修改host.json文件。

并且,如果您想更改Azure门户中的日志级别,请遵循以下步骤:

在Azure门户中,导航到功能应用程序->在功能应用程序设置中,确保启用“读/写”,然后更改日志级别以在中跟踪host.json

在此处输入图片说明

  • 有用的答案,谢谢。请问,是否可以单独控制每个函数的日志级别?下面的 URL 表明可以指定 Function.MyFunction - 但我不确定 MyFunction 在这里指的是什么。例如,这是 C# 中“FunctionName”属性中使用的名称吗?https://learn.microsoft.com/en-us/azure/azure-functions/functions-host-json (2认同)

Anu*_*nup 7

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

你可以在这里阅读更多