La libreria fornisce un logging versatile per le interazioni con l'API Google Ads. Puoi acquisire:
- Informazioni dettagliate: richieste complete inviate all'API e risposte ricevute.
- Riepiloghi concisi: una panoramica di alto livello delle interazioni.
Puoi controllare queste impostazioni di logging in due modi:
- Configurazione della libreria client: utilizza le opzioni di configurazione specifiche della libreria.
- A livello di programmazione con Python: utilizza il framework di logging integrato di Python per un controllo più diretto.
Il logging viene configurato automaticamente quando viene inizializzata un'istanza di GoogleAdsClient. Questo passaggio di inizializzazione si verifica, ad esempio, quando utilizzi il metodo load_from_storage. A questo punto, la libreria:
- Legge le impostazioni di logging specificate dalla sua configurazione.
- Passa queste impostazioni a
logging.config.dictConfigintegrato di Python per attivarle.
Quando questa libreria viene utilizzata come pacchetto installato, devi integrare il relativo logging con la configurazione di logging della tua applicazione. In particolare, devi aggiungere un
gestore di logging all'istanza del logger della libreria con il
addHandler
metodo. Questo gestore indicherà la destinazione dei messaggi di log della libreria (ad es. la console, un file e così via). Per farlo, recupera prima l'istanza del logger della libreria come mostrato di seguito:
import logging
logger = logging.getLogger('google.ads.googleads.client')
Dopo aver recuperato il logger della libreria, puoi indicare dove inviare i messaggi di log.
Invio di log alla console: per visualizzare i messaggi di log nella console, aggiungi un gestore di base. Ecco come indirizzare i log all'output standard (
stdout):Ecco come impostare un gestore di base che indicherà al logger di stampare su
stdout:import sys # Assuming 'logger' was retrieved as per previous instructions logger.addHandler(logging.StreamHandler(sys.stdout))Se preferisci inviare i log all'errore standard (
stderr), che viene spesso utilizzato per messaggi di errore e avvisi:import sys # Assuming 'logger' was retrieved as per previous instructions logger.addHandler(logging.StreamHandler(sys.stderr))Configurazione di altre impostazioni di logging a livello di programmazione: una volta ottenuto l' oggetto logger, puoi anche modificare a livello di programmazione altre impostazioni di logging utilizzando il modulo logging integrato di Python. Ad esempio, per modificare il livello di logging in
DEBUG(che mostrerà messaggi più dettagliati):logger.setLevel(logging.DEBUG)
Livelli di log
Il client genera log a diversi livelli e puoi impostare la configurazione per visualizzare alcuni o tutti i log riportati di seguito:
| Livello | Richiesta riuscita | Richiesta non andata a buon fine |
|---|---|---|
DEBUG |
Un log dettagliato con oggetti di richiesta e risposta completi in formato JSON. | Un log dettagliato con oggetti di richiesta ed eccezione completi in formato JSON. |
INFO |
Un riepilogo conciso con campi di richiesta e risposta specifici. | Un log dettagliato con oggetti di richiesta ed eccezione completi in formato JSON. |
WARNING |
Nessuno | Un riepilogo conciso con informazioni sulla richiesta specifiche, lo stato dell'eccezione e il messaggio. |
Poiché il framework di logging di Python ignora i messaggi di log meno gravi del livello configurato, l'impostazione su WARNING significa che vedrai solo messaggi concisi relativi alle richieste non andate a buon fine, mentre l'impostazione su DEBUG significa che vedrai tutti i tipi di log possibili nella tabella sopra riportata.
Logging su file
Quando esegui script di esempio come
get_campaigns.py
dalla riga di comando, tutti i messaggi di log in genere stampati sulla console possono
essere reindirizzati (o "inviati") a un file. Questa è una funzionalità della shell del sistema operativo, non della libreria Python stessa. Ecco come fare:
Per salvare l'output standard (la maggior parte dei log) in un file (sovrascrivendolo):
python get_campaigns.py -c $CLIENT_ID > campaign_logs.txt
Per aggiungere l'output standard a un file:
python get_campaigns.py -c $CLIENT_ID >> campaign_logs.txt
Per salvare sia l'output standard sia l'errore standard (per errori/avvisi) nello stesso file:
python get_campaigns.py -c $CLIENT_ID > all_logs.txt 2>&1
(Oppure, in alcune shell moderne come Bash 4+):
python get_campaigns.py -c $CLIENT_ID &> all_logs.txt
Intercettori di logging
La libreria client Python utilizza gli intercettori gRPC per accedere ai dettagli di richiesta e risposta e registrarli. Puoi configurare il tuo logging personalizzato creando un intercettore gRPC con una logica personalizzata. Per maggiori dettagli ed esempi di intercettori di logging personalizzati, consulta la guida al Logging