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.yamldosyanı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:
- Belirttiğiniz günlük kaydı ayarlarını yapılandırmasından okur.
- Bu ayarları etkinleştirmek için Python'un yerleşik
logging.config.dictConfigmodülüne iletir.
Ö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.