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

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.