Puoi scrivere log in Cloud Logging dalle applicazioni Java utilizzando l'appender Logback o un java.util.logging handler oppure utilizzando direttamente la libreria Cloud Logging per Java.
L'agente Cloud Logging non deve essere installato per utilizzare la libreria Cloud Logging per Java.
Prima di iniziare
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Logging API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Logging API.
Appender Logback per Cloud Logging
Con l'appender Logback, puoi utilizzare Cloud Logging con la facciata di logging SLF4J.
Installazione della dipendenza
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:
Configurazione di Logback
Logback può essere configurato programmaticamente o utilizzando uno script espresso in XML o Groovy.
Puoi personalizzare la soglia di gravità minima, il nome del log o fornire miglioramenti aggiuntivi. Questa è una configurazione Logback di esempio in formato XML:
Esempio
Dopo aver configurato Logback per utilizzare l'appender Logback di Cloud Logging, ora puoi reindirizzare i log utilizzando l'API di logging SLF4J. Fornisci la configurazione di Google Cloud se prevedi di eseguire l'esempio localmente o al di fuori di Google Cloud. Questo snippet mostra come eseguire il logging utilizzando la facciata SLF4J all'interno dell'applicazione:
Il gestore java.util.logging
Puoi anche utilizzare l'API Cloud Logging utilizzando un handler dell'API Logging Java predefinito.Installazione della dipendenza
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.
Configurazione di java.util.logging
I gestori di log possono essere aggiunti tramite programmazione o utilizzando un file di configurazione.
Il percorso del file di configurazione deve essere fornito all'applicazione come proprietà di sistema:
-Djava.util.logging.config.file=/path/to/logging.properties
Ecco un esempio di file di configurazione:
Esempio
Fornisci la configurazione di Google Cloud se prevedi di eseguire l'esempio localmente o al di fuori di Google Cloud.
Questo snippet mostra come eseguire il logging utilizzando java.util.logging
:
Configurazione comune
Le sezioni seguenti illustrano la configurazione comune all'handler java.util.logging
e all'appender Logback per Cloud Logging.
Predefiniti
L'appender Logback e il gestore java.util.logging
utilizzano i valori predefiniti seguenti per creare un'istanza di un client Cloud Logging:
Nome log :
java.log
Soglia minima per la registrazione :
INFO
Gravità dello svuotamento :
ERROR
La libreria Cloud Logging per Java raggruppa i messaggi in base alle dimensioni e al tempo dall'ultima scrittura. I batch con richieste di registrazione pari o superiori alla gravità dello svuotamento vengono scritti immediatamente.
Rilevamento delle risorse monitorate
Tutti i log inviati tramite le librerie Cloud Logging richiedono un tipo di risorsa monitorata per identificare l'applicazione.
L'appender Logback e il gestore java.util.logging
forniscono il rilevamento automatico del tipo di risorsa delle applicazioni App Engine, Compute Engine e Google Kubernetes Engine.
Una risorsa monitorata global
viene utilizzata come predefinita in altri ambienti.
Puoi sostituire il tipo di risorsa monitorata con un tipo valido nella configurazione dell'appender Logback o nella configurazione dell'handler java.util.logging
.
Campi ed etichette aggiuntivi
Utilizzando l'appender Logback e il gestore java.util.logging
, puoi aggiungere o aggiornare i campi di un oggetto LogEntry utilizzando un'istanza di LoggingEnhancer.
Gli enhancer devono essere configurati come mostrato nella configurazione dell'appender Logback o nella configurazione dell'handler java.util.logging
:
L'utilizzo di etichette personalizzate potrebbe non essere supportato per la tua configurazione. Ad esempio, i log di Dataflow non includono queste etichette.
Per ulteriori informazioni sull'installazione, consulta la documentazione della libreria Cloud Logging per Java. Puoi anche segnalare i problemi utilizzando il tracker dei problemi.
Scrivere log con la libreria client di Cloud Logging
Per informazioni sull'utilizzo diretto della libreria client di Cloud Logging per Java, consulta Librerie client di Cloud Logging.
Esegui su Google Cloud
Affinché un'applicazione possa scrivere log utilizzando la libreria Cloud Logging per Java, l'account di servizio per la risorsa sottostante deve disporre del ruolo IAM Logs Writer (roles/logging.logWriter
).
La maggior parte degli ambienti Google Cloud configura automaticamente l'account di servizio predefinito in modo che abbia questo ruolo.
App Engine
Cloud Logging è abilitato automaticamente per App Engine e il service account predefinito della tua app ha per impostazione predefinita le autorizzazioni IAM per scrivere le voci di log.
Per impostazione predefinita, l'ambiente App Engine standard utilizza l'API java.util.logging.Logger
, che scrive direttamente in Cloud Logging ed è facile da configurare.
Per ulteriori dettagli, consulta la documentazione di App Engine su Lettura e scrittura dei log delle applicazioni.
Ambiente flessibile di App Engine
Nell'ambiente flessibile di App Engine,
java.util.logging
utilizza ConsoleHandler
per impostazione predefinita e invia i log a stdout
e stderr
.
Il runtime Jetty è in bundle con la libreria Cloud Logging per Java.
L'handler java.util.logging
può essere utilizzato per eseguire il logging direttamente in Cloud Logging specificando logging.properties
in app.yaml
come mostrato di seguito:
env_variables:
JETTY_ARGS: -Djava.util.logging.config.file=WEB-INF/logging.properties
La registrazione degli ID traccia è disponibile nei runtime Jetty se utilizzi il gestore java.util.logging
o l'appender Logback.
Quando viene eseguito nell'ambiente flessibile di App Engine, un'istanza di TraceLoggingEnhancer aggiunge un ID traccia a prova di thread a ogni voce di log utilizzando l'etichetta trace_id
.
Google Kubernetes Engine (GKE)
GKE concede automaticamente allo account di servizio predefinito il ruolo IAM Scrittore di log (roles/logging.logWriter
).
Se utilizzi la federazione delle identità per i carichi di lavoro per GKE con questo account di servizio predefinito per consentire ai carichi di lavoro di accedere ad API Google Cloud specifiche, non è richiesta alcuna configurazione aggiuntiva.
Tuttavia, se utilizzi la federazione delle identità per i carichi di lavoro per GKE con un account di servizio IAM personalizzato, assicurati che l'account di servizio personalizzato abbia il ruolo di autore di log (roles/logging.logWriter
).
Se necessario, puoi anche utilizzare il seguente comando per aggiungere l'ambito di accesso logging.write
durante la creazione del cluster:
gcloud container clusters create example-cluster-name \
--scopes https://www.googleapis.com/auth/logging.write
Compute Engine
Quando utilizzi le istanze VM di Compute Engine, aggiungi l'ambito di accesso cloud-platform
a ogni istanza. Quando crei una nuova istanza tramite la console Google Cloud, puoi farlo nella sezione Accesso a identità e API del riquadro Crea istanza. Utilizza l'account di servizio predefinito di Compute Engine o un altro account di servizio a tua scelta e seleziona Consenti l'accesso completo a tutte le API Cloud nella sezione Identità e accesso API. Qualunque account di servizio tu selezioni, assicurati che gli sia stato concesso il ruolo Scrittore di log nella sezione IAM e amministrazione della console Google Cloud.
Eseguire in locale e altrove
Per utilizzare la libreria Cloud Logging per Java al di fuori di Google Cloud, incluso l'esecuzione della libreria sulla tua workstation, sui computer del tuo data center o sulle istanze VM di un altro provider cloud, devi fornire l'ID progetto Google Cloud e le credenziali dell'account di servizio appropriato direttamente alla libreria Cloud Logging per Java.
Per gli account di servizio esistenti:
Concedi all'account di servizio il ruolo IAM Logs Writer (
roles/logging.logWriter
). Per ulteriori informazioni sui ruoli IAM, consulta Controllo dell'accesso.
Se non hai un account di servizio, creane uno. Per informazioni su questa procedura, vedi Creare account di servizio.
Per informazioni generali sui metodi che puoi utilizzare per l'autenticazione, consulta Terminologia: account di servizio.
Visualizza i log
Nella console Google Cloud, vai alla pagina Esplora log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
In Esplora log devi specificare una o più risorse, ma la selezione delle risorse potrebbe non essere ovvia. Ecco alcuni suggerimenti per iniziare:
Se esegui il deployment dell'applicazione in App Engine o utilizzi le librerie specifiche di App Engine, imposta la risorsa su App GAE.
Se stai eseguendo il deployment dell'applicazione su Compute Engine, imposta la risorsa su Istanzia VM GCE.
Se esegui il deployment dell'applicazione su Google Kubernetes Engine, la configurazione di logging del cluster determina il tipo di risorsa delle voci di log. Per una discussione dettagliata sulle soluzioni di monitoraggio Kubernetes di Google Cloud Observability precedenti e di Google Cloud Observability e su come queste opzioni influiscono sul tipo di risorsa, consulta Eseguire la migrazione al monitoraggio Kubernetes di Google Cloud Observability.
Se la tua applicazione utilizza direttamente l'API Cloud Logging, la risorsa dipende dall'API e dalla tua configurazione. Ad esempio, nella tua applicazione puoi specificare una risorsa o utilizzare una risorsa predefinita.
Se non vedi nessun log in Esplora log, per visualizzare tutte le voci del log, passa alla modalità di query avanzata e utilizza una query vuota.
- Per passare alla modalità di query avanzata, fai clic su menu (▾) nella parte superiore di Esplora log e poi seleziona Converti in filtro avanzato.
- Cancella i contenuti visualizzati nella casella del filtro.
- Fai clic su Invia filtro.
Puoi esaminare le singole voci per identificare le risorse.
Per ulteriori informazioni, consulta Utilizzare Esplora log.