Abilita Logging

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: una panoramica generale 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 logging integrato di Python per un controllo più diretto.

La registrazione viene configurata 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 biblioteca:

Quando questa libreria viene utilizzata come pacchetto installato, devi integrare la registrazione con la configurazione della registrazione della tua applicazione. In particolare, devi aggiungere un gestore di logging all'istanza del logger della libreria con il metodo addHandler. Questo gestore determinerà 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 qui:

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 dei 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 indichi 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), 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 programmatica di altre impostazioni di logging: una volta ottenuto l'oggetto logger, puoi anche modificare programmaticamente 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 cliente genera log a diversi livelli e puoi impostare la configurazione 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 e il messaggio dell'eccezione.

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 riuscite, mentre l'impostazione su DEBUG significa che vedrai tutti i possibili tipi di log nella tabella precedente.

Registrazione nel file

Quando esegui script di esempio come get_campaigns.py dalla riga di comando, tutti i messaggi di log generalmente stampati nella console possono essere reindirizzati (o "indirizzati") a un file. Si tratta di una funzionalità della shell del sistema operativo, non della libreria Python stessa. Ecco come:

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 che l'errore standard (per errori/avvisi) nello stesso file:

python get_campaigns.py -c $CLIENT_ID > all_logs.txt 2>&1

(o su 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 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 intercettore di logging personalizzato, consulta la guida al logging.