Abilita il 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: 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 filegoogle-ads.yaml o nelle variabili di ambiente.
  • A livello di programmazione con Python: utilizza il framework logging integrato di Python per il controllo diretto.

Configurare tramite google-ads.yaml

Il logging viene configurato automaticamente quando viene inizializzata un'istanza di GoogleAdsClient (ad esempio, quando chiami load_from_storage). Durante l'inizializzazione, la libreria:

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 a livello di programmazione

Quando utilizzi la libreria come pacchetto installato senza una sezione logging nel file di configurazione, puoi integrare il logging con la configurazione di logging 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:

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 stato 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 a livello di programmazione 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 del 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 da riga di comando, puoi reindirizzare l'output dei 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

Intercettori gRPC personalizzati

La libreria client Python utilizza gli intercettatori 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 e un esempio di intercettore di logging personalizzato, consulta la guida al logging.