प्रवेश करना सक्षम करें

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

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

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

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

google-ads.yaml के ज़रिए कॉन्फ़िगर करना

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

  • यह कुकी, configuration से आपकी तय की गई लॉगिंग सेटिंग को पढ़ती है.
  • इन सेटिंग को Python के बिल्ट-इन logging.config.dictConfig को पास करता है, ताकि उन्हें चालू किया जा सके.

उदाहरण के लिए, अपनी google-ads.yaml फ़ाइल में logging सेक्शन जोड़ा जा सकता है:

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

प्रोग्राम के हिसाब से कॉन्फ़िगर करना

लाइब्रेरी को इंस्टॉल किए गए पैकेज के तौर पर इस्तेमाल करते समय, अगर आपकी कॉन्फ़िगरेशन फ़ाइल में logging सेक्शन नहीं है, तो प्रोग्राम के हिसाब से इसकी लॉगिंग को अपने ऐप्लिकेशन की लॉगिंग के साथ इंटिग्रेट किया जा सकता है. addHandler का इस्तेमाल करके, लाइब्रेरी के लॉगर इंस्टेंस (google.ads.googleads.client) में लॉगिंग हैंडलर अटैच करें और टारगेट लॉग लेवल सेट करें:

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)

अगर आपको लॉग को स्टैंडर्ड एरर (stderr) पर भेजना है, तो logging.StreamHandler को sys.stderr पास करें. स्टैंडर्ड एरर का इस्तेमाल अक्सर गड़बड़ी के मैसेज और चेतावनियों के लिए किया जाता है:

import logging
import sys

logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)

लॉग लेवल

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

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

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

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

Python में प्रोग्राम के ज़रिए या कमांड लाइन से आउटपुट को रीडायरेक्ट करके, किसी फ़ाइल में लॉग लिखे जा सकते हैं.

Python में किसी फ़ाइल में लॉग करना

Python से सीधे किसी फ़ाइल में लॉग लिखने के लिए, क्लाइंट लॉगर में logging.FileHandler अटैच करें:

import logging

logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)

शेल का इस्तेमाल करके आउटपुट को रीडायरेक्ट करना

कमांड लाइन से get_campaigns.py जैसी उदाहरण स्क्रिप्ट चलाने पर, कंसोल लॉग आउटपुट को किसी फ़ाइल में रीडायरेक्ट किया जा सकता है. इसके लिए, आपको अपने ऑपरेटिंग सिस्टम के शेल का इस्तेमाल करना होगा.

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

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

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

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

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

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

इसके अलावा, Bash 4+ पर:

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

कस्टम gRPC इंटरसेप्टर

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