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 file google-ads.yaml o nelle variabili di ambiente.
  • In modo programmatico con Python: utilizza il framework logging integrato di Python per il controllo diretto.

Configura tramite google-ads.yaml

Il logging viene configurato 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

Configura in modo programmatico

Quando utilizzi la libreria come pacchetto installato senza una sezione logging nel file di configurazione, puoi integrare il logging con la configurazione del logging dell'applicazione in modo programmatico. 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), che viene 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 con diversi livelli di gravità e puoi configurare il logger in modo che visualizzi 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, l'impostazione del livello su WARNING mostra solo messaggi concisi per le richieste non riuscite, mentre l'impostazione del livello su DEBUG mostra tutti i tipi di log nella tabella.

Registra in un file

Puoi scrivere i log in un file in modo programmatico in Python o reindirizzando l'output dalla riga di comando.

Registra 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)

Reindirizza 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 eventuali file esistenti):

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

Intercettatori gRPC personalizzati

La libreria client Python utilizza gli intercettatori gRPC per accedere ai dettagli delle richieste e delle risposte e registrarli. Puoi configurare il logging personalizzato creando un intercettatore gRPC con logica personalizzata. Per ulteriori dettagli e un esempio di intercettatore di logging personalizzato, consulta la guida al logging.