Kitaplık, Google Ads API etkileşimleri için çok yönlü günlük kaydı sağlar. Şunları yakalayabilirsiniz:
- Ayrıntılı bilgi: API'ye gönderilen tam istekler ve alınan yanıtlar.
- Özet bilgiler: Etkileşimlere genel bakış.
Bu günlük kaydı ayarlarını iki şekilde kontrol edebilirsiniz:
- İstemci Kitaplığı Yapılandırması: Kitaplığa özgü yapılandırma seçeneklerini kullanın.
- Python ile programatik olarak: Daha doğrudan kontrol için Python'ın yerleşik günlük kaydı çerçevesini kullanın.
Bir GoogleAdsClient
örneği başlatılırken günlük kaydı otomatik olarak yapılandırılır. Bu ilk başlatma adımı, örneğin load_from_storage
yöntemini kullandığınızda gerçekleşir. Bu noktada kitaplık:
- Belirttiğiniz günlük kaydı ayarlarını yapılandırmasından okuyun.
- Bu ayarları etkinleştirmek için Python'un yerleşik
logging.config.dictConfig
işlevine iletin.
Bu kitaplık yüklü bir paket olarak kullanıldığında günlük kaydını uygulamanızın günlük kaydı ayarıyla entegre etmeniz gerekir. Daha açık belirtmek gerekirse, addHandler
yöntemini kullanarak kitaplığın kendi günlükleyici örneğine bir günlük kaydı işleyici eklemeniz gerekir. Bu işleyici, kitaplığın günlük mesajlarının nereye yönlendirileceğini (ör. konsola, bir dosyaya vb.) belirler. Bunu yapmak için önce kitaplığın günlük kaydı örneğini burada gösterildiği gibi alın:
import logging
logger = logging.getLogger('google.ads.googleads.client')
Kitaplığın günlük kaydını aldıktan sonra günlük mesajlarının nereye kaydedileceğini belirtebilirsiniz.
Günlükleri konsola gönderme: Günlük mesajlarını konsolunuzda görüntülemek için temel bir işleyici eklemeniz gerekir. Günlükleri standart çıkışa (
stdout
) yönlendirmek için:Günlük kaydırıcıya
stdout
dosyasına yazdırmasını söyleyecek temel bir işleyiciyi nasıl ayarlayacağınız aşağıda açıklanmıştır:import sys # Assuming 'logger' was retrieved as per previous instructions logger.addHandler(logging.StreamHandler(sys.stdout))
Günlükleri genellikle hata mesajları ve uyarılar için kullanılan standart hataya (
stderr
) göndermeyi tercih ederseniz:import sys # Assuming 'logger' was retrieved as per previous instructions logger.addHandler(logging.StreamHandler(sys.stderr))
Diğer Günlük Kaydetme Ayarlarını Programatik Olarak Yapılandırma: Günlük kaydedici nesnesi oluşturulduktan sonra, Python'un yerleşik logging modülünü kullanarak diğer günlük kaydı ayarlarını programatik olarak da değiştirebilirsiniz. Örneğin, günlük kaydı düzeyini
DEBUG
olarak değiştirmek için (daha ayrıntılı mesajlar gösterilir):logger.setLevel(logging.DEBUG)
Günlük seviyeleri
Müşteri, birkaç farklı düzeyde günlük oluşturur ve yapılandırmanızı aşağıdakilerin bir kısmını veya tamamını görecek şekilde ayarlayabilirsiniz:
Seviye | Başarılı İstek | Başarısız İstek |
---|---|---|
DEBUG |
JSON olarak tam istek ve yanıt nesnelerini içeren ayrıntılı bir günlük. | JSON olarak eksiksiz istek ve istisna nesnelerini içeren ayrıntılı günlük. |
INFO |
Belirli istek ve yanıt alanlarını içeren kısa bir özet. | JSON olarak eksiksiz istek ve istisna nesnelerini içeren ayrıntılı günlük. |
WARNING |
Yok | Belirli istek bilgilerini, istisna durumunu ve mesajını içeren kısa bir özet. |
Python günlük kaydı çerçevesi, yapılandırılmış düzeyden daha az önemli olan günlük mesajlarını yoksayar. Bu nedenle, WARNING
olarak ayarlandığında yalnızca başarısız isteklerle ilgili kısa mesajlar görürsünüz. DEBUG
olarak ayarlandığında ise yukarıdaki tabloda gösterilen tüm günlük türlerini görürsünüz.
Dosyaya günlük kaydı
Komut satırınızdan get_campaigns.py
gibi örnek komut dosyalarını çalıştırdığınızda, genellikle konsola yazdırılan tüm günlük mesajları bir dosyaya yönlendirilebilir (veya "yönlendirilebilir"). Bu, Python kitaplığının değil, işletim sisteminizin kabuğunun bir özelliğidir. Bunun için uygulamanız gereken adımlar:
Standart çıkışı (çoğu günlük) bir dosyaya kaydetmek için (dosyanın üzerine yazarak):
python get_campaigns.py -c $CLIENT_ID > campaign_logs.txt
Standart çıkışı bir dosyaya eklemek için:
python get_campaigns.py -c $CLIENT_ID >> campaign_logs.txt
Hem standart çıkışı hem de standart hatayı (hatalar/uyarılar için) aynı dosyaya kaydetmek üzere:
python get_campaigns.py -c $CLIENT_ID > all_logs.txt 2>&1
(Veya Bash 4 ve sonraki sürümler gibi bazı modern kabuklarda):
python get_campaigns.py -c $CLIENT_ID &> all_logs.txt
Günlük kaydeden müdahaleciler
Python istemci kitaplığı, istek ve yanıt ayrıntılarına erişmek ve bunları günlüğe kaydetmek için gRPC engelleyicilerini kullanır. Özel mantık içeren bir gRPC müdahaleci oluşturarak kendi özel günlük kaydınızı ayarlayabilirsiniz. Daha fazla bilgi ve özel günlük kaydı tutucu örneği için Günlük kaydı kılavuzuna bakın.