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: panoramiche di alto livello delle interazioni con l'API.
Puoi controllare queste impostazioni di logging in due modi:
- Configurazione della libreria client: utilizza le opzioni di configurazione specifiche della libreria nel file
google-ads.yamlo nelle variabili di ambiente. - In modo programmatico con Python: utilizza il framework
loggingintegrato di Python per il controllo diretto.
Configura tramite google-ads.yaml
Il logging viene configurato automaticamente quando viene inizializzata un'istanza GoogleAdsClient (ad esempio, quando chiami load_from_storage). All'inizializzazione, la libreria:
- Legge le impostazioni di logging specificate dalla sua configurazione.
- Passa queste impostazioni al modulo integrato di Python
logging.config.dictConfigper attivarle.
Ad esempio, puoi aggiungere una sezione logging al file google-ads.yaml:
logging:
version: 1
disable_existing_loggers: false
formatters:
default_fmt:
format: '[%(asctime)s - %(levelname)s] %(message).5000s'
datefmt: '%Y-%m-%d %H:%M:%S'
handlers:
default_handler:
class: logging.StreamHandler
formatter: default_fmt
loggers:
'':
handlers: [default_handler]
level: INFO
Configura in modo programmatico
Quando utilizzi la libreria come pacchetto installato senza una sezione logging nel file di configurazione, puoi integrare il logging con la configurazione del logging dell'applicazione in modo programmatico. Collega un gestore di logging all'istanza del logger della libreria (google.ads.googleads.client) utilizzando addHandler e imposta il livello di log di destinazione:
import logging
import sys
# Retrieve the library's logger instance.
logger = logging.getLogger("google.ads.googleads.client")
# Direct logs to standard output (stdout).
logger.addHandler(logging.StreamHandler(sys.stdout))
# Set the log level to DEBUG to view detailed messages.
logger.setLevel(logging.DEBUG)
Se preferisci inviare i log all'errore standard (stderr), che viene spesso utilizzato per messaggi di errore e avvisi, passa sys.stderr a logging.StreamHandler:
import logging
import sys
logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)
Livelli di log
Il client genera log con diversi livelli di gravità e puoi configurare il logger in modo che visualizzi alcuni o tutti i seguenti elementi:
| Livello | Richiesta riuscita | Richiesta non riuscita |
|---|---|---|
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 specifiche sulla richiesta, lo stato dell'eccezione e il messaggio di errore. |
Poiché il framework di logging di Python ignora i messaggi di log meno gravi del livello configurato, l'impostazione del livello su WARNING mostra solo messaggi concisi per le richieste non riuscite, mentre l'impostazione del livello su DEBUG mostra tutti i tipi di log nella tabella.
Registra in un file
Puoi scrivere i log in un file in modo programmatico in Python o reindirizzando l'output dalla riga di comando.
Registra in un file in Python
Per scrivere i log direttamente in un file da Python, collega un logging.FileHandler al logger client:
import logging
logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)
Reindirizza l'output utilizzando la shell
Quando esegui script di esempio come get_campaigns.py dalla riga di comando, puoi reindirizzare l'output del log della console a un file utilizzando la shell del sistema operativo.
Per salvare l'output standard in un file (sovrascrivendo eventuali file esistenti):
python get_campaigns.py -c $CUSTOMER_ID > campaign_logs.txt
Per aggiungere l'output standard a un file esistente:
python get_campaigns.py -c $CUSTOMER_ID >> campaign_logs.txt
Per salvare sia l'output standard che l'errore standard (per errori e avvisi) nello stesso file:
python get_campaigns.py -c $CUSTOMER_ID > all_logs.txt 2>&1
In alternativa, su Bash 4+:
python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt
Intercettatori gRPC personalizzati
La libreria client Python utilizza gli intercettatori gRPC per accedere ai dettagli delle richieste e delle risposte e registrarli. Puoi configurare il logging personalizzato creando un intercettatore gRPC con logica personalizzata. Per ulteriori dettagli e un esempio di intercettatore di logging personalizzato, consulta la guida al logging.