Azure / Azure/azure-functions-java-worker

Application of logging severity is inconsistent with documentation

Abierto
#674 1 comentario 0 reacciones 1 asignado Reclamado por @kamperiadis Ver en GitHub
area:java-functions Bug Documentation reviewed
Lenguaje dominante
Java
Estrellas
103
Forks
74
Merge medio
4 d 8 h
PR fusionados (30 d)
2

Descripción

We are using the App Settings dialog to manage log levels for Azure Functions. According to https://learn.microsoft.com/en-us/azure/azure-functions/configure-monitoring?tabs=v2#configure-categories, the Host.Results setting controls logging of entries to the requests table. However, with version 4.13 of the runtime, having
AzureFunctionsJobHost__logging__logLevel__default = Warning
AzureFunctionsJobHost__logging__logLevel__Host__Results = Information
results in no request information being received by the requests table.

#### Investigative information

Please provide the following:

- Timestamp: 2022-11-01T00:16:54.2729718Z
- Function App name: com-foo-bar-20220830131408475
- Function name(s) (as appropriate): Functions.HttpExample
- Invocation ID: a8ac4748-f1c7-4a45-ac24-9b2fc92b7d9b
- Region: West US

#### Repro steps

Provide the steps required to reproduce the problem:

Configure the function with the following App Settings
{
"name": "AzureFunctionsJobHost__logging__logLevel__default",
"value": "Warning",
"slotSetting": false
},
{
"name": "AzureFunctionsJobHost__logging__logLevel__Function",
"value": "Information",
"slotSetting": false
},
{
"name": "AzureFunctionsJobHost__logging__logLevel__Function.HttpExample",
"value": "Information",
"slotSetting": false
},
{
"name": "AzureFunctionsJobHost__logging__logLevel__Function.HttpExample.User",
"value": "Warning",
"slotSetting": false
},
{
"name": "AzureFunctionsJobHost__logging__logLevel__Host__Aggregator",
"value": "Information",
"slotSetting": false
},
{
"name": "AzureFunctionsJobHost__logging__logLevel__Host__Results",
"value": "Information",
"slotSetting": false
},
{
"name": "AzureFunctionsJobHost__logging__logLevel__Microsoft",
"value": "Warning",
"slotSetting": false
},
{
"name": "AzureFunctionsJobHost__logging__logLevel__Worker",
"value": "Warning",
"slotSetting": false
},

#### Expected behavior

When the function is triggered, an entry should appear in the Application Insights requests table.

#### Actual behavior

No entry appears in the requests table.

#### Known workarounds
Changing this setting to Information will result in the entry appearing in the Request table
{
"name": "AzureFunctionsJobHost__logging__logLevel__default",
"value": "Information",
"slotSetting": false
},

#### Related information

Provide any related information

* Programming language: Java

Source

```java
package org.example.functions;

import com.microsoft.azure.functions.ExecutionContext;
import com.microsoft.azure.functions.HttpMethod;
import com.microsoft.azure.functions.HttpRequestMessage;
import com.microsoft.azure.functions.HttpResponseMessage;
import com.microsoft.azure.functions.HttpStatus;
import com.microsoft.azure.functions.annotation.AuthorizationLevel;
import com.microsoft.azure.functions.annotation.FunctionName;
import com.microsoft.azure.functions.annotation.HttpTrigger;
import lombok.extern.slf4j.Slf4j;

import java.util.Optional;

/**
* Azure Functions with HTTP Trigger.
*/
@Slf4j
public class HttpTriggerFunction {
/**
* This function listens at endpoint "/api/HttpExample". Two ways to invoke it using "curl" command in bash:
* 1. curl -d "HTTP Body" {your host}/api/HttpExample
* 2. curl "{your host}/api/HttpExample?name=HTTP%20Query"
*/
@FunctionName("HttpExample")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET, HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage> request,
final ExecutionContext context) {
context.getLogger().info("2 Java HTTP trigger processed a request.");

// Parse query parameter
final String query = request.getQueryParameters().get("name");
final String name = request.getBody().orElse(query);

log.error("Error Log");
log.warn("Warning Log");
log.info("Info Log");
log.debug("Debug Log");
log.trace("Trace Log");

if (name == null) {
return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body("Please pass a name on the query string or in the request body").build();
} else {
return request.createResponseBuilder(HttpStatus.OK).body("Hello, " + name).build();
}
}
}
```

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.