Google Ads API ইন্টার্যাকশনের জন্য লাইব্রেরি বহুমুখী লগিং প্রদান করে। আপনি ক্যাপচার করতে পারবেন:
- বিস্তারিত তথ্য: API-তে পাঠানো সম্পূর্ণ অনুরোধ ও প্রাপ্ত উত্তর ।
- সংক্ষিপ্ত সারসংক্ষেপ: API ইন্টার্যাকশনের হাই-লেভেল ওভারভিউ।
আপনি দুইভাবে এই লগিং সেটিংস নিয়ন্ত্রণ করতে পারবেন:
- ক্লায়েন্ট লাইব্রেরি কনফিগারেশন: আপনার
google-ads.yamlফাইল বা এনভায়রনমেন্ট ভেরিয়েবেলে লাইব্রেরির নির্দিষ্ট কনফিগারেশন বিকল্প ব্যবহার করুন। - Python-এর মাধ্যমে প্রোগ্রাম করা: সরাসরি কন্ট্রোল করার জন্য Python-এর বিল্ট-ইন
loggingফ্রেমওয়ার্ক ব্যবহার করুন।
google-ads.yaml-এর মাধ্যমে কনফিগার করা
GoogleAdsClient ইনস্ট্যান্স ইনিশিয়ালাইজ করা হলে (যেমন, আপনি load_from_storage কল করলে)
লগিং অটোমেটিক কনফিগার করা হয়। ইনিশিয়ালাইজেশনের সময়,
লাইব্রেরি:
- আপনার নির্দিষ্ট করা লগিং সেটিংস এর কনফিগারেশন থেকে পড়ে।
- সেগুলি চালু করতে 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) লগ পাঠাতে চান, যা প্রায়শই এরর মেসেজ এবং সতর্কতার জন্য ব্যবহৃত হয়, তাহলে sys.stderr থেকে logging.StreamHandler-এ পাস করুন:
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 ইন্টারসেপ্টর তৈরি করে আপনি নিজের কাস্টম লগিং সেট-আপ করতে পারবেন। আরও বিবরণ ও কাস্টম লগিং ইন্টারসেপ্টরের উদাহরণ পেতে লগিং গাইড দেখুন।