Visualizza e scrivi i log delle funzioni Cloud Function
Scrittura dei log di runtime
Per impostazione predefinita, Cloud Functions include il logging del runtime semplice. I log scritti su stdout
o
stderr
verranno visualizzati automaticamente nella
console Google Cloud.
Per un logging più avanzato, utilizza le librerie client di Cloud Logging.
Per impostazione predefinita, il payload di log è una semplice stringa di testo, come mostrato negli snippet seguenti. La stringa viene memorizzata nel campo textPayload
della voce di log.
Node.js
Alla maggior parte delle voci di log non è associato un livello di log. Questi includono:- Log emessi utilizzando
console.log()
,console.info()
,console.warn()
oconsole.error()
- Log scritti direttamente in
stdout
ostderr
I messaggi di sistema interni hanno il livello di log DEBUG
.
Python
- I log a output standard o errore standard non hanno un livello di log associato.
- I messaggi di sistema interni hanno il livello di log
DEBUG
.
Go
- Per i log a
stdout
ostderr
non è associato un livello di log. - I messaggi di sistema interni hanno il livello di log
DEBUG
.
Java
- Per i log a
stdout
ostderr
non è associato un livello di log. - I messaggi di sistema interni hanno il livello di log
DEBUG
.
C#
- Il testo scritto in
stdout
(ad esempio tramiteConsole.WriteLine
) estderr
(ad esempio tramiteConsole.Error.WriteLine
) non ha un livello di log. - I livelli di logging di ASP.NET Core sono mappati ai livelli di Cloud Logging come segue:
LogLevel.Trace
eLogLevel.Debug map
a Cloud LoggingDEBUG
.LogLevel.Information
viene mappato a Cloud LoggingINFO
.LogLevel.Warning
viene mappato a Cloud LoggingWARNING
.LogLevel.Error
viene mappato a Cloud LoggingERROR
.LogLevel.Critical
viene mappato a Cloud LoggingCRITICAL
.
Ruby
Le voci di log non hanno un livello di log associato.
PHP
Scrittura di log strutturati
Ai log di testo predefiniti descritti sopra non è associato un livello di log.
Se vuoi includere livelli di log o altri campi specifici nelle voci di log, puoi scrivere i log in stdout
o stderr
sotto forma di un'unica riga di codice JSON serializzato. Questa riga viene selezionata e analizzata da
Cloud Functions e viene inserita nel campo jsonPayload
anziché in
textPayload
. Gli snippet seguenti mostrano la scrittura di questi log strutturati.
Node.js
Python
Il supporto del logging strutturato è disponibile in Python 3.8 e versioni successive.
Go
La struttura di ogni voce di log è fornita da un tipo Entry
:
Quando viene registrato uno struct di tipo Entry, viene chiamato il metodo String
per eseguirne il marshal nel formato JSON previsto da Cloud Logging:
Java
Abilita il logging JSON con Logback e SLF4J abilitando il encoder JSON di Logstash nella configurazione logback.xml
.
Elaborazione di campi JSON speciali nei messaggi
Quando fornisci dati strutturati come dizionario JSON, alcuni campi speciali vengono eliminati da jsonPayload
e scritti nel campo corrispondente nell'elemento LogEntry
generato, come descritto nella documentazione relativa ai campi speciali.
Ad esempio, se il file JSON include una proprietà severity
, viene rimosso da jsonPayload
e viene visualizzato come severity
della voce di log. La proprietà message
viene utilizzata come testo visualizzato principale della voce di log, se presente.
Scrittura dei log utilizzando le librerie client
Le librerie client di Cloud Logging offrono un modo alternativo per scrivere i log. Con queste librerie puoi utilizzare i meccanismi di logging standard del tuo linguaggio di programmazione e integrarli con vari framework di logging supportati. Inoltre, le librerie client semplificano l'inserimento dei campi JSON speciali acquisendo automaticamente alcune informazioni e fornendo interfacce per compilare in modo appropriato i campi.
Puoi utilizzare le librerie client per scrivere i log con l'API Cloud Logging in modo sincrono o asincrono. Alcune librerie client supportano anche la scrittura di log strutturati direttamente in stdout
o stderr
. Tieni presente che se scrivi i log in modo asincrono, la terminazione imprevista delle funzioni potrebbe comportare la perdita delle voci di log.
Tieni inoltre presente che il logging sincrono con l'API Logging aumenta i tempi di esecuzione della funzione, poiché richiede l'attesa del completamento delle chiamate API.
Visualizzazione dei log di runtime
Questa sezione descrive le opzioni a tua disposizione per visualizzare i log di runtime.
Utilizzo dello strumento a riga di comando
I log per Cloud Functions sono visualizzabili nell'interfaccia utente di Cloud Logging e mediante Google Cloud CLI.
Per visualizzare i log con gcloud CLI, utilizza il comando gcloud functions logs read
:
gcloud functions logs read
Per visualizzare i log per una funzione specifica, fornisci il nome della funzione come argomento:
gcloud functions logs read FUNCTION_NAME
Utilizza quanto segue per visualizzare i log per un'esecuzione specifica:
gcloud functions logs read FUNCTION_NAME --execution-id EXECUTION_ID
Per la gamma completa delle opzioni di visualizzazione dei log, consulta la documentazione di gcloud functions logs read
.
Utilizzo della dashboard di Logging
Puoi visualizzare i log di runtime per Cloud Functions anche nella console Google Cloud.
Utilizzo dell'API Logging
I log di runtime possono essere scritti e recuperati anche tramite l'API Cloud Logging. Le librerie client di Cloud Logging forniscono un'interfaccia idiomatica all'API Logging:
Node.js
Per maggiori informazioni, consulta Riferimento per la libreria client di Node.js.Python
Per maggiori informazioni, consulta la libreria client Python di riferimento.Go
Per maggiori informazioni, consulta la documentazione di riferimento sulla libreria client Go.Java
Per maggiori informazioni, consulta la pagina di riferimento sulla libreria client Java.C#
Ruby
PHP
Per ulteriori opzioni di logging per Java, consulta Logging Java.
Risposta ai log di runtime
Puoi rispondere agli eventi di Cloud Logging inoltrando i relativi log a una Cloud Function. Per ulteriori informazioni, consulta la pagina Trigger di seconda parte con Cloud Logging.
Visualizzazione dei log delle immagini di build
Puoi anche visualizzare i log per il passaggio dell'immagine di build del processo di deployment. Segui il link per ulteriori informazioni.