Visualizzare e scrivere i log delle funzioni Cloud Run
Scrittura di log di runtime
Per impostazione predefinita, le funzioni Cloud Run includono un semplice logging di runtime. 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 del log è una semplice stringa di testo, come mostrato nei seguenti snippet. 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
corrisponde a Cloud LoggingWARNING
.LogLevel.Error
corrisponde a Cloud LoggingERROR
.LogLevel.Critical
corrisponde a Cloud LoggingCRITICAL
.
Ruby
Le voci di log non hanno un livello di log associato.
PHP
Scrittura di log strutturati
I log di testo predefiniti descritti sopra non hanno un livello di log associato.
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 rilevata e analizzata dalle funzioni Cloud Run e viene inserita nel campo jsonPayload
anziché in textPayload
. Gli snippet riportati di seguito mostrano come scrivere 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 del 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
Attiva la registrazione JSON con Logback e SLF4J attivando Logstash JSON Encoder nella configurazione di 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. message
viene utilizzata come testo visualizzato 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 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 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 --gen2
Per visualizzare i log di 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 l'intera gamma di opzioni di visualizzazione dei log, consulta la documentazione di
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 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 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. Segui il link per ulteriori informazioni.