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ı yakalayabilirsiniz:

  • Ayrıntılı bilgiler: API'ye gönderilen isteklerin ve alınan yanıtların tamamı.
  • Kısa özetler: API etkileşimlerine dair 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ük kaydını uygulamanızın günlük kaydı kurulumuyla programatik olarak entegre edebilirsiniz. addHandler kullanarak kitaplığın günlük kaydı örneğine (google.ads.googleads.client) bir günlük kaydı işleyici 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. Günlükçüyü, aşağıdakilerin bir kısmını veya tamamını görecek şekilde yapılandırabilirsiniz:

Seviye Başarılı istek Başarısız istek
DEBUG İstek ve yanıt nesnelerinin tamamını JSON olarak 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üzeyin WARNING olarak ayarlanması yalnızca başarısız isteklerle ilgili kısa mesajları gösterir. Düzeyin DEBUG olarak ayarlanması ise tablodaki tüm günlük türlerini gösterir.

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

Python'dan doğrudan bir dosyaya günlük 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 kesicileri

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