É possível gravar registros no Cloud Logging pelos aplicativos em Java usando o Logback appender ou um gerenciador java.util.logging. Também é possível usar diretamente a biblioteca do Cloud Logging para Java.
O agente do Cloud Logging não precisa ser instalado para usar a biblioteca do Cloud Logging para Java.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the Cloud Logging API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the Cloud Logging API.
Logback appender para Cloud Logging
Ao usar o Logback appender (em inglês), é possível usar o Cloud Logging com a fachada de geração de registros SLF4J (em inglês).
Como instalar a dependência
If you are using Maven, add
the following to your pom.xml
file. For more information about
BOMs, see The Google Cloud Platform Libraries BOM.
If you are using Gradle, add the following to your dependencies:
If you are using sbt, add the following to your dependencies:
Configuração de Logback
O Logback pode ser configurado (em inglês) de maneira programática ou usando um script expresso em XML ou Groovy.
É possível personalizar o limite mínimo de gravidade, o nome do registro ou oferecer outros aprimoramentos. Esta é uma configuração de amostra do Logback no formato XML:
Exemplo
Depois de configurar o Logback para usar o app Logback do Cloud Logging, use a API SLF4J Logging para redirecionar os registros. Forneça a configuração do Google Cloud se você quiser executar o exemplo localmente ou fora do Google Cloud. Este snippet mostra como registrar usando a fachada SLF4J no seu aplicativo:
O gerenciador java.util.logging
Também é possível usar a API Cloud Logging utilizando um gerenciador (em inglês) padrão da API Logging para Java.Como instalar a dependência
If you are using Maven with
a BOM, add the following to your pom.xml
file:
If you are using Maven without a BOM, add this to your dependencies:
If you are using Gradle, add the following to your dependencies:
If you are using sbt, add the following to your dependencies:
If you're using Visual Studio Code, IntelliJ, or Eclipse, you can add client libraries to your project using the following IDE plugins:
The plugins provide additional functionality, such as key management for service accounts. Refer to each plugin's documentation for details.
Configuração do java.util.logging
Os gerenciadores de geração de registro podem ser adicionados programaticamente ou usando um arquivo de configuração.
O caminho do arquivo de configuração precisa ser fornecido ao seu aplicativo como uma propriedade do sistema:-Djava.util.logging.config.file=/path/to/logging.properties
Aqui está um exemplo de um arquivo de configuração:
Exemplo
Forneça a configuração do Google Cloud se você quiser executar o exemplo localmente ou fora do Google Cloud.
Veja como gerar registros com este snippet usando java.util.logging
:
Configuração comum
As seções a seguir abordam a configuração comum ao gerenciador java.util.logging
e ao Logback appender para Cloud Logging.
Padrões
O gerenciador java.util.logging
e o Logback appender usam os seguintes padrões para instanciar um cliente do Cloud Logging:
Nome do registro:
java.log
Limite mínimo para registrar:
INFO
Gravidade da limpeza:
ERROR
A biblioteca do Cloud Logging para Java armazena mensagens em lotes por tamanho e hora desde a última gravação. Os lotes com solicitações de geração de registro em ou acima da gravidade de limpeza são gravados imediatamente.
Detecção de recursos monitorados
Todos os registros enviados por meio das bibliotecas do Cloud Logging exigem um tipo de recurso monitorado para identificar seu aplicativo.
O Logback appender e o gerenciador java.util.logging
fornecem detecção automática do tipo de recurso de seus aplicativos App Engine, Compute Engine e Google Kubernetes Engine.
Um recurso monitorado global
é usado como o padrão em outros ambientes.
É possível modificar o tipo de recurso monitorado para um tipo válido na Configuração do Logback appender ou na Configuração do gerenciador java.util.logging
.
Outros campos e rótulos
Com o Logback appender e o gerenciador java.util.logging
, é possível adicionar ou atualizar campos em um objeto LogEntry usando uma instância de LoggingEnhancer.
Os mecanismos de aprimoramento precisam ser configurados conforme mostrado na Configuração do Logback appender ou na Configuração do gerenciador java.util.logging
:
O uso de rótulos personalizados pode não ser compatível com sua configuração. Por exemplo: Os registros do Dataflow não incluem esses rótulos.
Para mais informações sobre a instalação, consulte a documentação da biblioteca do Cloud Logging para Java (em inglês). Além disso, use o rastreador de problemas (em inglês) para informá-los.
Gravar registros com a biblioteca de cliente do Cloud Logging
Para mais informações sobre como usar a biblioteca de cliente do Cloud Logging para Java diretamente, consulte Bibliotecas de cliente do Cloud Logging.
Executar no Google Cloud
Para que um aplicativo grave registros usando a biblioteca do Cloud Logging para Java, o
a conta de serviço do recurso subjacente precisa ter o
Gravador de registros (roles/logging.logWriter
) papel do IAM.
A maioria dos ambientes do Google Cloud configura automaticamente
conta de serviço para ter esse papel.
App Engine
O Cloud Logging é ativado automaticamente para o App Engine, e a conta de serviço padrão do aplicativo tem as permissões do IAM por padrão para gravar entradas de registro.
O ambiente padrão do App Engine, por padrão, usa a API java.util.logging.Logger
. Isso grava no Cloud Logging diretamente e é fácil de configurar.
Para mais detalhes, consulte a documentação do App Engine sobre como ler e gravar registros de aplicativos.
Ambiente flexível do App Engine
No ambiente flexível do App Engine, o java.util.logging
usa o ConsoleHandler
por padrão, e envia registros para stdout
e stderr
.
O ambiente de execução Jetty é fornecido com a biblioteca do Cloud Logging para Java.
O gerenciador java.util.logging
pode ser usado para gerar registros diretamente no Cloud Logging, fornecendo o logging.properties
no app.yaml
, como mostrado aqui:
env_variables:
JETTY_ARGS: -Djava.util.logging.config.file=WEB-INF/logging.properties
A geração de registros do código de trace está disponível nos ambientes de execução do Jetty, se você usa o gerenciador java.util.logging
ou o Logback appender.
Quando gerada no ambiente flexível do App Engine, uma instância TraceLoggingEnhancer (em inglês) adiciona um código de trace seguro para thread a cada entrada de registro usando o rótulo trace_id
.
Google Kubernetes Engine (GKE)
O GKE concede automaticamente a conta de serviço
o papel do IAM Gravador de registros (roles/logging.logWriter
).
Se você usar
Federação de identidade da carga de trabalho para GKE
com essa conta de serviço padrão para permitir que cargas de trabalho acessem
APIs do Google Cloud, nenhuma outra configuração é necessária.
No entanto, se você usar a federação de identidade da carga de trabalho para o GKE com um
conta de serviço do IAM personalizada e garanta que o serviço personalizado
tem o papel de Gravador de registros (roles/logging.logWriter
).
Se necessário, também é possível usar o seguinte comando para adicionar o escopo de acesso logging.write
ao criar o cluster:
gcloud container clusters create example-cluster-name \
--scopes https://www.googleapis.com/auth/logging.write
Compute Engine
Ao usar instâncias de VM do Compute Engine, adicione o escopo de acesso cloud-platform
a cada instância. Ao criar uma nova instância por meio do
Console do Google Cloud, faça isso na seção Identidade e acesso à API.
do painel Criar instância. Use a conta de serviço padrão do Compute Engine ou outra de sua escolha e selecione Permitir acesso completo a todas as APIs do Cloud na seção Identidade e acesso à API. Seja qual for o serviço
da conta selecionada, verifique se ela recebeu o
Papel Gravador de registros no IAM e Admin da
console do Google Cloud.
Execute localmente e em outro lugar
Para usar a biblioteca do Cloud Logging para Java fora do Google Cloud, faça o seguinte: incluindo a execução da biblioteca em sua própria estação de trabalho, no sistema computadores ou nas instâncias de VM de outro provedor de nuvem, é preciso informe o ID do projeto do Google Cloud e as permissões conta de serviço as credenciais diretamente para a biblioteca do Cloud Logging para Java.
Para contas de serviço atuais, faça o seguinte:
Conceda à conta de serviço o IAM Papel do IAM Gravador de registros (
roles/logging.logWriter
). Para mais informações sobre o IAM, consulte Controle de acesso.
Se você não tiver uma conta de serviço, crie uma. Para informações sobre processo, consulte Criar contas de serviço.
Para informações gerais sobre os métodos que você pode usar para autenticação, consulte Terminologia: contas de serviço.
Visualize os registros
No console do Google Cloud, acesse a página Análise de registros:
Acessar a Análise de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.
No Explorador de registros, é preciso especificar um ou mais recursos, mas a escolha deles pode não ser óbvia. Veja a seguir algumas dicas para ajudar você a começar:
Se você estiver implantando seu aplicativo no App Engine ou usando as bibliotecas específicas dele, defina seu recurso como Aplicativo do GAE.
Se você estiver implantando seu aplicativo no Compute Engine, defina o recurso como Instância de VM do GCE.
Se você estiver implantando seu aplicativo no Google Kubernetes Engine, a configuração de geração de registros do cluster determinará o tipo de recurso das entradas de registro. Para um discussão sobre a observabilidade do Google Cloud legado e a observabilidade soluções do Kubernetes Monitoring e como elas afetam tipo de recurso, consulte Como migrar para o Google Cloud Observability Kubernetes Monitoring (em inglês).
Se o aplicativo estiver usando a API Cloud Logging diretamente, o recurso dependerá da API e da configuração. Por exemplo, no seu aplicativo, é possível especificar um recurso ou usar um recurso padrão.
Se você não vir registros no Explorador de registros, alterne para o modo de consulta avançada e use uma consulta vazia para ver todas as entradas de registro.
- Se quiser alternar para o modo de consulta avançada, clique no menu (▾) na parte superior do Explorador de registros e selecione Converter para filtro avançado.
- Limpe o conteúdo que aparece na caixa de filtro.
- Clique em Enviar filtro.
É possível examinar as entradas individuais para identificar seus recursos.
Para mais informações, consulte Como usar a Análise de registros.