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. Log scritti in stdout
o
stderr
apparirà automaticamente in
Console Google Cloud.
Per un logging più avanzato, utilizza
Librerie client di Cloud Logging.
Per impostazione predefinita, il payload di log è una semplice stringa di testo, come mostrato di seguito
gli snippet di codice. 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. Queste 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
- Per i log a output standard o errore standard non è associato alcun log livello.
- I messaggi di sistema interni hanno il livello di log
DEBUG
.
Vai
- Per i log in
stdout
ostderr
non è associato alcun log livello. - I messaggi di sistema interni hanno il livello di log
DEBUG
.
Java
- Per i log in
stdout
ostderr
non è associato alcun log livello. - 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 altre impostazioni
campi
nelle voci di log, puoi scrivere i log in stdout
o stderr
un'unica riga di JSON serializzato. Questa riga viene raccolta e analizzata da
Cloud Functions e viene inserito nel campo jsonPayload
anziché
textPayload
. Gli snippet riportati di seguito mostrano la scrittura di questi log strutturati.
Node.js
Python
Il supporto del logging strutturato è disponibile in Python 3.8 e versioni successive.
Vai
La struttura di ogni voce di log è fornita da un tipo Entry
:
Quando viene registrato uno struct Entry, viene chiamato il metodo String
per eseguire il marshal in
il formato JSON previsto da Cloud Logging:
Java
Abilita il logging JSON con Logback e SLF4J
abilitando il encoder JSON di Logstash
nella tua configurazione logback.xml
.
Elaborazione di campi JSON speciali nei messaggi
Quando fornisci dati strutturati come dizionario JSON, alcuni campi speciali vengono
rimosse da jsonPayload
e vengono scritte nel campo corrispondente in
LogEntry
generato,
descritti nella documentazione per i campi speciali.
Ad esempio, se il file JSON include una proprietà severity
, questa viene rimossa dal
jsonPayload
e viene visualizzato come severity
della voce di log. 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 forniscono un modo alternativo per scrivere i log. Con queste librerie puoi utilizzare meccanismi di logging del linguaggio di programmazione e si integrano con framework di logging supportati. Le librerie client semplificano inoltre l'inserimento campi JSON speciali acquisendo automaticamente alcune informazioni e per compilare i campi in modo corretto.
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
log strutturati direttamente in stdout
o stderr
. Tieni presente che se scrivi log
in modo asincrono,
potrebbero causare la perdita delle voci di log.
Tieni inoltre presente che il logging sincrono con l'API Logging aumenta
funzione perché richiede l'attesa delle chiamate API
completata.
Visualizzazione dei log di runtime
Utilizzo dello strumento a riga di comando
I log per Cloud Functions sono visualizzabili nell'interfaccia utente di Cloud Logging e tramite Google Cloud CLI.
Per visualizzare i log con gcloud CLI, utilizza il comando
gcloud functions logs read
:
gcloud functions logs read --gen2
Per visualizzare i log per una funzione specifica, fornisci il nome della funzione come argomento:
gcloud functions logs read FUNCTION_NAME --gen2
Per le funzioni in altri linguaggi, i log possono essere
dell'esecuzione della stessa funzione utilizzando l'intestazione della richiesta x-cloud-trace-context
.
Per la gamma completa delle opzioni di visualizzazione dei log, consulta la documentazione per
gcloud functions logs read
.
Utilizzo della dashboard di Logging
Puoi anche visualizzare i log di runtime per Cloud Functions in Console Google Cloud.
Utilizzo dell'API Logging
I log di runtime possono essere scritti e recuperati anche tramite l'API Cloud Logging. La Librerie client di Cloud Logging fornisce un'interfaccia idiomatica all'API Logging:
Node.js
Per ulteriori informazioni, consulta Riferimento per la libreria client di Node.js.Python
Per ulteriori informazioni, consulta Riferimento alla libreria client Python.Vai
Per ulteriori informazioni, consulta Riferimento per la libreria client di Go.Java
Per ulteriori informazioni, consulta Riferimento per la 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 un la funzione Cloud Function. Per ulteriori informazioni, consulta Trigger di seconde parti con Cloud Logging .
Visualizzazione dei log delle immagini di build
Puoi anche visualizzare i log per il passaggio relativo all'immagine di build del processo di deployment. Segui il link per ulteriori informazioni.