Abilita Logging

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:

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