Günlük kaydını etkinleştir

Kitaplık, Google Ads API etkileşimleri için çok yönlü günlük kaydı sağlar. Şunları kaydedebilirsiniz:

  • Ayrıntılı bilgiler: API'ye gönderilen tam istekler ve alınan yanıtlar.
  • Kısa özetler: API etkileşimlerine genel bakış.

Bu günlük kaydı ayarlarını iki şekilde kontrol edebilirsiniz:

  • İstemci kitaplığı yapılandırması: google-ads.yaml dosyanızda veya ortam değişkenlerinizde kitaplığın belirli yapılandırma seçeneklerini kullanın.
  • Python ile programatik olarak: Doğrudan kontrol için Python'un yerleşik logging çerçevesini kullanın.

google-ads.yaml üzerinden yapılandırın

Günlük kaydı, bir GoogleAdsClient örneği başlatıldığında (örneğin, load_from_storage yöntemini çağırdığınızda) otomatik olarak yapılandırılır. Başlatma sırasında kitaplık:

Örneğin, google-ads.yaml dosyanıza bir logging bölümü ekleyebilirsiniz:

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

Programatik olarak yapılandırma

Kitaplığı, yapılandırma dosyanızda logging bölümü olmadan yüklü bir paket olarak kullanırken günlüğünü uygulamanızın günlük kaydı kurulumuyla programatik olarak entegre edebilirsiniz. addHandler kullanarak kitaplığın logger örneğine (google.ads.googleads.client) bir günlük kaydı işleyicisi ekleyin ve hedef günlük kaydı düzeyini ayarlayın:

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)

Günlükleri genellikle hata mesajları ve uyarılar için kullanılan standart hataya (stderr) göndermek istiyorsanız sys.stderr değerini logging.StreamHandler parametresine iletin:

import logging
import sys

logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)

Günlük kaydı düzeyleri

İstemci, çeşitli önem düzeylerinde günlükler oluşturur ve aşağıdaki günlüklerin bir kısmını veya tamamını görmek için günlükçüyü yapılandırabilirsiniz:

Seviye Başarılı istek Başarısız istek
DEBUG JSON olarak tam istek ve yanıt nesnelerini içeren ayrıntılı bir günlük. JSON olarak tam istek ve istisna nesnelerini içeren ayrıntılı bir günlük.
INFO Belirli istek ve yanıt alanlarını içeren kısa bir özet. JSON olarak tam istek ve istisna nesnelerini içeren ayrıntılı bir günlük.
WARNING Yok Belirli istek bilgilerini, istisna durumunu ve hata mesajını içeren kısa bir özet.

Python günlük kaydı çerçevesi, yapılandırılan düzeyden daha az önemli olan günlük mesajlarını yoksaydığından, düzey WARNING olarak ayarlandığında yalnızca başarısız isteklerle ilgili kısa mesajlar gösterilir. Düzey DEBUG olarak ayarlandığında ise tablodaki tüm günlük türleri gösterilir.

Dosyaya kaydetme

Günlükleri Python'da programatik olarak veya komut satırından çıkışı yönlendirerek bir dosyaya yazabilirsiniz.

Python'da bir dosyaya günlük kaydetme

Günlükleri Python'dan doğrudan bir dosyaya yazmak için istemci günlükçüsüne bir logging.FileHandler ekleyin:

import logging

logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)

Kabuğu kullanarak çıkışı yönlendirme

Komut satırından get_campaigns.py gibi örnek komut dosyaları çalıştırdığınızda, işletim sisteminizin kabuğunu kullanarak konsol günlüğü çıkışını bir dosyaya yönlendirebilirsiniz.

Standart çıkışı bir dosyaya kaydetmek için (mevcut dosyaların üzerine yazarak):

python get_campaigns.py -c $CUSTOMER_ID > campaign_logs.txt

Standart çıkışı mevcut bir dosyaya eklemek için:

python get_campaigns.py -c $CUSTOMER_ID >> campaign_logs.txt

Hem standart çıkışı hem de standart hatayı (hatalar ve uyarılar için) aynı dosyaya kaydetmek için:

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

Alternatif olarak, Bash 4+ sürümünde:

python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt

Özel gRPC araya giricileri

Python istemci kitaplığı, istek ve yanıt ayrıntılarına erişmek ve bunları günlüğe kaydetmek için gRPC kesicilerini kullanır. Özel mantık içeren bir gRPC araya giricisi oluşturarak kendi özel günlük kaydınızı ayarlayabilirsiniz. Daha fazla bilgi ve özel günlük kaydı yakalayıcısı örneği için Günlük kaydı kılavuzuna bakın.