Visualizza e scrivi i log delle funzioni di Cloud Run
Scrittura dei log di runtime
Per impostazione predefinita, le funzioni Cloud Run includono un semplice logging di runtime. I log scritti in stdout
o
stderr
verranno visualizzati automaticamente nella
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
- I log inviati a
stdout
ostderr
non hanno un livello di log associato. - 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
corrisponde 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 una singola riga di JSON serializzato. Questa riga viene raccolta e analizzata da
Cloud Run funziona 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 tuo JSON include una proprietà severity
, viene rimossa dal
jsonPayload
e viene visualizzata come severity
della voce di log. La proprietà message
viene utilizzata come testo di visualizzazione principale della voce di log, se presente.
Scrittura di log mediante librerie client
Le librerie client di Cloud Logging forniscono un modo alternativo per scrivere i log. Con queste librerie puoi utilizzare i meccanismi di logging standard del tuo linguaggio di programmazione e integrarti con vari framework di logging supportati. Le librerie client semplificano anche la compilazione dei campi JSON speciali acquisendo automaticamente alcune informazioni e fornendo interfacce per compilare correttamente i campi.
Puoi utilizzare le librerie client per scrivere 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, l'interruzione imprevista della funzione potrebbe comportare la perdita delle voci di log.
Tieni inoltre presente che la registrazione sincrona con l'API Logging aumenta il tempo di esecuzione della funzione perché richiede di attendere il completamento delle chiamate API.
Visualizzazione dei log di runtime
Questa sezione descrive le opzioni per visualizzare i log di runtime.
Utilizzo dello strumento a riga di comando
I log per le funzioni Cloud Run 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
Per visualizzare i log per una funzione specifica, fornisci il nome della funzione come argomento:
gcloud functions logs read FUNCTION_NAME
Per visualizzare i log di 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 per
gcloud functions logs read
Utilizzo della dashboard di Logging
Puoi anche visualizzare i log di runtime per le funzioni di Cloud Run in 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 ulteriori informazioni, consulta Riferimento per la libreria client Node.js.Python
Per ulteriori informazioni, consulta la documentazione di riferimento della libreria client Python.Vai
Per ulteriori informazioni, consulta la documentazione di riferimento della libreria client Go.Java
Per ulteriori informazioni, consulta la documentazione di riferimento della libreria client Java.C#
Ruby
PHP
Per ulteriori opzioni di logging per Java, consulta Logging Java.
Rispondere ai log di runtime
Puoi rispondere agli eventi di Cloud Logging inoltrando i relativi log a un nella funzione Cloud Run. Per ulteriori informazioni, consulta la pagina Trigger di terze parti con Cloud Logging.
Visualizzazione dei log delle immagini di build
Puoi anche visualizzare i log del passaggio build image del processo di deployment. Per ulteriori informazioni, segui il link.