Java Logging
No tempo de execução Java, qualquer resultado para STDOUT
ou STDERR
é propagado para o Cloud
Logging. No entanto, o nível de gravidade do registo detalhado não é propagado. Use a API Java Logging (JUL) padrão para registar mensagens e propagar os níveis de gravidade do registo corretos para o Cloud Logging.
Se usar uma framework de registo diferente, como SLF4J, Log4j 2 ou Apache Commons Logging, pode propagar o nível de gravidade do registo correto de uma das seguintes formas:
- Formate as mensagens de registo no formato JSON de registo estruturado para que o nível de gravidade seja propagado para o Cloud Logging.
- Use uma ponte/adaptador para enviar mensagens de registo para a API Java Logging, que já propaga as mensagens de registo no formato correto. Se adotar esta abordagem, certifique-se de que não existe um adaptador que já encaminhe a partir da API Java Logging para a framework de registo.
Se a sua função usar bibliotecas diferentes e as bibliotecas usarem frameworks de registo diferentes, tem de configurar cada um dos frameworks de registo usados. As secções seguintes abordam algumas das várias opções.
Função do Spring Cloud Run
Se usar a função Spring Cloud Run com o Google Cloud adaptador de funções Spring Cloud Run, pode gerar o registo no formato correto através do Logging Starter do Spring Cloud e do CONSOLE_JSON
appender para gerar o registo no formato JSON. Google Cloud O Spring usa o SLF4J e o Logback por predefinição, mas também pode encaminhar os registos do SLF4J para a API Java Logging. Consulte a secção SLF4J para ver detalhes.
Java Logging API (JUL)
Todos os ambientes Java das funções do Cloud Run suportados incluem o registo Java com um controlador JSON que produz o registo no formato correto. Algumas frameworks Java podem adicionar componentes adicionais para fazer a ponte entre o JUL e uma framework de registo diferente (como a ponte jul-to-slf4j ou o adaptador de registo JDK Log4j). Nesse caso, essas mensagens de registo deixam de ser formatadas corretamente. Se as suas mensagens de registo não tiverem níveis de gravidade corretos, certifique-se de que essas pontes são removidas.
SLF4J
O SLF4J pode escrever registos na API Java Logging através da associação da framework de registo slf4j-jdk14
. Consulte a documentação do SLF4J para ver detalhes. Certifique-se de que não tem a jul-to-slf4j
ponte.
Logback
O Logback não tem um appender que encaminhe mensagens de registo para a API Java Logging. No entanto, o Logback é usado normalmente com a API SLF4J, pelo que pode mudar a implementação do registador SLF4J para a API Java Logging.
Log4j 2
O Log4j 2 não tem um adaptador direto que encaminhe mensagens de registo para a API Java Logging. Se estiver a usar o Log4j 2, primeiro tem de encaminhar as mensagens para o SLF4J através do adaptador Log4J 2 para SLF4J e, em seguida, configurar o SLF4J para usar a implementação da API Java Logging. Certifique-se de que não tem o adaptador de registo do JDK do Log4j.
Apache Commons Logging (JCL)
O Apache Commons Logging tem um adaptador da API Java Logging. Configure o Commons Logging para usar o Jdk14Logger. Consulte a página Configuração do Apache Commons Logging para obter mais informações.