I have upgraded my Azure functions to .NET 8. Since upgrading I no longer see any of my _logger.LogInformation
events. Only errors get logged
I have reviewed this document (How to configure monitoring for Azure Functions) and adjusted my host.json accordingly.
https://learn.microsoft.com/en-us/azure/azure-functions/configure-monitoring?tabs=v2
This is my host.json
file
{
"version": "2.0",
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"default": "Information",
"Function.IngressWebContent": "Information",
"Function.IngressWebContent.User": "Information",
"Host.Aggregator": "Information",
"Host.Results": "Information",
"Function": "Information"
}
}
}
These are the relevant parts of my code:
public class IngressWebContentFunction
{
private readonly ILogger _logger;
private readonly ILoggerFactory _loggerFactory;
public IngressWebContentFunction(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger<IngressWebContentFunction>();
_loggerFactory = loggerFactory;
}
[Function("IngressWebContent")]
public async Task<HttpResponseData> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestData req, string hostname)
{
_logger.LogInformation("I cannot see the message in the portal");
// ...
}
I have tried different logging levels but that makes no difference
_logger.LogTrace("LogTrace");
_logger.LogDebug("LogDebug");
When I run the functions locally, I do see my events
2
Answers
I got the issue resolved by replacing my Program.cs with this. [1]
A code comment in the file says: The Application Insights SDK adds a default logging filter that instructs ILogger to capture only Warning and more severe logs. Application Insights requires an explicit override.
[1] https://github.com/Azure/azure-functions-dotnet-worker/blob/main/samples/FunctionApp/Program.cs
This is my very basic
host.json
that works for my azure functions. Take it from here and try to adapt it by adding slowly your configuration and see where it stops working.