La libreria fornisce una registrazione 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 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. - A livello di programmazione con Python: utilizza il framework
loggingintegrato di Python per il controllo diretto.
Configura tramite google-ads.yaml
La registrazione viene configurata 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 relativa configurazione.
- Passa queste impostazioni alla funzione integrata
logging.config.dictConfigdi Python per 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
Configurare in modo programmatico
Quando utilizzi la libreria come pacchetto installato senza una sezione logging nel file di configurazione, puoi integrare la registrazione con la configurazione di registrazione dell'applicazione a livello di programmazione. 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), 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 a diversi livelli di gravità e puoi configurare il logger per visualizzare 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, se imposti il livello su WARNING vengono visualizzati solo messaggi
concisi per le richieste non riuscite, mentre se imposti il livello su DEBUG vengono visualizzati tutti i tipi di log
nella tabella.
Registrare in un file
Puoi scrivere i log in un file in modo programmatico in Python o reindirizzando l'output dalla riga di comando.
Registrare 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)
Reindirizzare 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 qualsiasi file esistente):
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
Interceptor gRPC personalizzati
La libreria client Python utilizza gli intercettori gRPC per accedere e registrare i dettagli di richieste e risposte. Puoi configurare la tua registrazione personalizzata creando un intercettore gRPC con logica personalizzata. Per maggiori dettagli ed esempi di un intercettore di logging personalizzato, consulta la guida al logging.