लॉगिंग की सुविधा चालू करना

यह लाइब्रेरी, Google Ads API इंटरैक्शन के लिए अलग-अलग तरह की लॉगिंग की सुविधा देती है. इनका स्क्रीनशॉट लिया जा सकता है:

  • ज़्यादा जानकारी: एपीआई को भेजे गए पूरे अनुरोध और मिले जवाब.
  • खास जानकारी: इंटरैक्शन की खास जानकारी.

लॉगिंग की इन सेटिंग को दो तरीकों से कंट्रोल किया जा सकता है:

  • क्लाइंट लाइब्रेरी कॉन्फ़िगरेशन: लाइब्रेरी के खास कॉन्फ़िगरेशन विकल्पों का इस्तेमाल करें.
  • Python प्रोग्राम के ज़रिए: ज़्यादा सीधे कंट्रोल के लिए, Python के पहले से मौजूद लॉगिंग फ़्रेमवर्क का इस्तेमाल करें.

GoogleAdsClient इंस्टेंस के शुरू होने पर, लॉगिंग अपने-आप कॉन्फ़िगर हो जाती है. उदाहरण के लिए, load_from_storage तरीके का इस्तेमाल करने पर, यह शुरू करने का चरण होता है. इस दौरान, लाइब्रेरी:

  • कॉन्फ़िगरेशन से, लॉगिंग की तय की गई सेटिंग पढ़ें.
  • इन्हें चालू करने के लिए, इन सेटिंग को Python के पहले से मौजूद logging.config.dictConfig में पास करें.

जब इस लाइब्रेरी का इस्तेमाल इंस्टॉल किए गए पैकेज के तौर पर किया जाता है, तो आपको इसके लॉगिंग को अपने ऐप्लिकेशन के लॉगिंग सेटअप के साथ इंटिग्रेट करना होगा. खास तौर पर, आपको addHandler तरीके का इस्तेमाल करके, लाइब्रेरी के लॉगर इंस्टेंस में लॉगिंग हैंडलर जोड़ना होगा. यह हैंडलर तय करेगा कि लाइब्रेरी के लॉग मैसेज कहां भेजे जाएं (उदाहरण के लिए, कंसोल, फ़ाइल वगैरह). ऐसा करने के लिए, पहले लाइब्रेरी का लॉगर इंस्टेंस पाएं, जैसा कि यहां दिखाया गया है:

import logging

logger = logging.getLogger('google.ads.googleads.client')

लाइब्रेरी का लॉगर वापस पाने के बाद, उसे यह बताया जा सकता है कि लॉग मैसेज कहां दिखाने हैं.

  • कंसोल पर लॉग भेजना: अपने कंसोल पर लॉग मैसेज दिखाने के लिए, आपको एक बुनियादी हैंडलर जोड़ना होगा. लॉग को स्टैंडर्ड आउटपुट (stdout) पर भेजने का तरीका यहां बताया गया है:

    यहां एक बुनियादी हैंडलर सेट करने का तरीका बताया गया है, जो लॉगर को stdout पर प्रिंट करने के लिए कहेगा:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stdout))
    

    अगर आपको स्टैंडर्ड गड़बड़ी (stderr) में लॉग भेजने हैं, तो:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stderr))
    
  • प्रोग्राम के हिसाब से लॉगिंग की अन्य सेटिंग कॉन्फ़िगर करना: लॉगर ऑब्जेक्ट मिलने के बाद, Python के पहले से मौजूद logging मॉड्यूल का इस्तेमाल करके, लॉगिंग की अन्य सेटिंग को प्रोग्राम के हिसाब से भी बदला जा सकता है. उदाहरण के लिए, लॉगिंग लेवल को DEBUG पर बदलने के लिए, जिससे ज़्यादा जानकारी वाले मैसेज दिखेंगे:

    logger.setLevel(logging.DEBUG)
    

लॉग लेवल

क्लाइंट कुछ अलग-अलग लेवल पर लॉग जनरेट करता है. साथ ही, यहां दी गई कुछ या सभी जानकारी देखने के लिए, अपना कॉन्फ़िगरेशन सेट किया जा सकता है:

लेवल अनुरोध पूरा हो गया अनुरोध पूरा नहीं हो सका
DEBUG JSON के तौर पर, अनुरोध और रिस्पॉन्स ऑब्जेक्ट की पूरी जानकारी वाला लॉग. पूरा अनुरोध और अपवाद ऑब्जेक्ट के साथ ज़्यादा जानकारी वाला लॉग, JSON के तौर पर.
INFO अनुरोध और जवाब वाले खास फ़ील्ड के साथ खास जानकारी. पूरा अनुरोध और अपवाद ऑब्जेक्ट के साथ ज़्यादा जानकारी वाला लॉग, JSON के तौर पर.
WARNING कोई नहीं अनुरोध की खास जानकारी, अपवाद की स्थिति, और मैसेज के साथ खास जानकारी.

Python लॉगिंग फ़्रेमवर्क, कॉन्फ़िगर किए गए लेवल से कम गंभीर लॉग मैसेज को अनदेखा करता है. इसलिए, WARNING पर सेट करने का मतलब है कि आपको सिर्फ़ अस्वीकार किए गए अनुरोधों से जुड़े कम शब्दों वाले मैसेज दिखेंगे. हालांकि, DEBUG पर सेट करने का मतलब है कि आपको ऊपर दी गई टेबल में सभी तरह के लॉग दिखेंगे.

फ़ाइल में लॉग करना

कमांड-लाइन से get_campaigns.py जैसी उदाहरण स्क्रिप्ट चलाने पर, आम तौर पर कंसोल पर प्रिंट किए गए किसी भी लॉग मैसेज को किसी फ़ाइल पर रीडायरेक्ट (या "पाइप") किया जा सकता है. यह आपके ऑपरेटिंग सिस्टम के शेल की सुविधा है, न कि Python लाइब्रेरी की. यहां तरीका देखें:

स्टैंडर्ड आउटपुट (ज़्यादातर लॉग) को किसी फ़ाइल में सेव करने के लिए (उसमें बदलाव करके):

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

किसी फ़ाइल में स्टैंडर्ड आउटपुट जोड़ने के लिए:

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

एक ही फ़ाइल में स्टैंडर्ड आउटपुट और स्टैंडर्ड गड़बड़ी (गड़बड़ियों/चेतावनियों के लिए) दोनों को सेव करने के लिए:

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

(या Bash 4+ जैसे कुछ आधुनिक शेल पर):

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

लॉगिंग इंटरसेप्टर्स

Python क्लाइंट लाइब्रेरी, अनुरोध और जवाब की जानकारी को ऐक्सेस और लॉग करने के लिए, gRPC इंटरसेप्टर्स का इस्तेमाल करती है. कस्टम लॉजिक के साथ gRPC इंटरसेप्टर्स बनाकर, अपनी पसंद के मुताबिक लॉगिंग सेट अप की जा सकती है. ज़्यादा जानकारी और कस्टम लॉगिंग इंटरसेप्टर का उदाहरण पाने के लिए, लॉगिंग के बारे में गाइड देखें.