Configuring Log Level for Azure Functions

妖精的绣舞 提交于 2020-01-22 14:44:09

问题


I have an Azure Function App which has Application Insights configured. My functions have some LogTrace() messages in but they are not being captured by AppInsights. Do I have to configure a minimum loglevel somewhere?


回答1:


Please take a look at this article on how to set log level for function v1 or v2.

In the file host.json, for the filed "Function", set its value to Trace. Then LogTrace() can be logged into application insights.

Sample host.json for Azure function v2, which can log trace messages to Application Insights:

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

And if you publish your function app with visual studio, you can modify your host.json file as per the above before publishing.

And if you want to change the log level in azure portal, please follow this:

In Azure portal, navigate to your function app -> in the function app settings, make sure enable the Read/Write, then change log level to trace in the host.json.




回答2:


To further add to @Ivan Yang's excellent answer, you can specify a minimum logging level per function in v2 of Azure Functions. (I have not verified if it does/doesn't work in v1) Using his example host.json:

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

Function.FunctionA is assuming you have a function named (via the FunctionName attribute) "FunctionA", e.g.:

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

So whatever value you specify in the FunctionName attribute can be used to explicitly define a minimum log level just for that function. In the host.json example above, all functions, by default, will have a minimum log level of Trace while FunctionA will have a minimum log level of Warning.



来源:https://stackoverflow.com/questions/55408032/configuring-log-level-for-azure-functions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!