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 tam istekler ve alınan yanıtlar.
- Kısa özetler: API etkileşimlerine dair genel bakışlar.
Bu günlük ayarlarını iki şekilde kontrol edebilirsiniz:
- İstemci kitaplığı yapılandırması: Kitaplığın
google-ads.yamldosyanızdaki veya ortam değişkenlerindeki yapılandırma seçeneklerini kullanın. - Python ile programatik olarak: Doğrudan kontrol için Python'ın yerleşik
loggingçerçevesini kullanın.
google-ads.yaml aracılığıyla yapılandırma
Günlüğe kaydetme, bir GoogleAdsClient örneği başlatıldığında (örneğin, load_from_storage işlevini çağırdığınızda) otomatik olarak yapılandırılır. Başlatma sırasında kitaplık:
- Belirttiğiniz günlük ayarlarını yapılandırmasından okur.
- Bu ayarları, etkinleştirmek için Python'ın yerleşik
logging.config.dictConfigişlevine iletir.
Örneğin, google-ads.yaml dosyanıza 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öndermeyi tercih ederseniz sys.stderr öğesini logging.StreamHandler öğesine 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 |
İsteğin ve yanıtın tamamını JSON olarak içeren ayrıntılı bir günlük. | Tam istek ve istisna nesnelerini JSON olarak içeren ayrıntılı bir günlük. |
INFO |
Belirli istek ve yanıt alanlarını içeren kısa bir özet. | Tam istek ve istisna nesnelerini JSON olarak 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 ciddi olan günlük iletilerini yoksaydığı için düzeyi WARNING olarak ayarladığınızda yalnızca başarısız isteklerle ilgili kısa iletiler gösterilir. Düzeyi DEBUG olarak ayarladığınızda 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 dosyaya günlük kaydetme
Günlükleri doğrudan Python'daki bir dosyaya yazmak için istemci kaydediciye 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ını ç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 arayıcılarını 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.