Geração de registros Java

No ambiente de execução do Java, qualquer saída para STDOUT ou STDERR é propagada para o Cloud Logging. No entanto, o nível de gravidade do registro granular não é propagado. Use a API Java Logging (JUL) padrão para registrar mensagens e propagar os níveis de gravidade de registro corretos para o Cloud Logging.

Se você usar uma estrutura de geração de registros diferente, como SLF4J, Log4j 2 ou Apache Commons Logging, será possível propagar o nível de gravidade de registro correto em uma das seguintes maneiras:

  • Formate as mensagens de registro no formato JSON de registro estruturado para que o nível de gravidade seja propagado para o Cloud Logging.
  • Use uma ponte/adaptador para enviar mensagens de registro para a API Java Logging, que já propaga as mensagens de registro no formato correto. Se você adotar essa abordagem, verifique se não há um adaptador existente que já faz o roteamento da API Java Logging para o framework de geração de registros.

Se a função usar bibliotecas diferentes e as bibliotecas usarem estruturas de geração de registros diferentes, será necessário configurar cada uma delas. As seções a seguir abrangem algumas das várias opções.

Spring Cloud Run function

Se você usar o Spring Cloud Run function com o adaptador do Spring Cloud Run functions para o Google Cloud, será possível gerar o registro no formato correto usando o método Starter do Logging do Google Cloud para o Spring Cloud e o anexador CONSOLE_JSON para gerar o registro no formato JSON. O Spring usa o SLF4J e o Logback por padrão, mas também é possível rotear registros SLF4J para a API Java Logging. Consulte a seção SLF4J para mais detalhes.

API Java Logging (JUL)

Todos os ambientes Java compatíveis do Cloud Run functions incluem o Java Logging com um gerenciador JSON que gera o registro no formato correto. Alguns frameworks do Java podem adicionar outros componentes para conectar JUL a um framework de geração de registros diferente (como ponte jul-to-slf4j ou Adaptador Log4j JDK). Nesse caso, esses registros as mensagens não serão mais formatadas corretamente. Se as mensagens de registro não tiverem níveis de gravidade corretos, verifique se essas pontes foram removidas.

SLF4J

O SLF4J pode gravar registros na API Java Logging usando a vinculação do framework de geração de registros slf4j-jdk14. Consulte a documentação do SLF4J para mais detalhes. Verifique se você não tem a ponte jul-to-slf4j.

Logback

O Logback não tem um aplicativo que roteie mensagens de registro para a API Java Logging. No entanto, o Logback geralmente é usado com a API SFL4J para que você possa alternar a implementação do registrador SLF4J para a API Java Logging.

Log4j2

O Log4j 2 não tem um adaptador direto que direciona mensagens de registro para a API Java Logging. Se você estiver usando o Log4j 2, primeiro será necessário rotear as mensagens para o SLF4J usando o adaptador Log4J 2 para SLF4J e, em seguida, configurar o SLF4J para usar a implementação da API Java Logging. Verifique se você não tem o adaptador Log4j JDK do Logging.

Apache Commons Logging (JCL)

O Apache Commons Logging tem um adaptador da API Java Logging. Configure o recurso Commons Logging para usar o Jdk14Logger. Consulte a página de configuração do Apache Commons Logging para mais informações.