লাইব্রেরিটি Google Ads API ইন্টারঅ্যাকশনের জন্য বহুমুখী লগিং প্রদান করে। আপনি ক্যাপচার করতে পারেন:
- বিস্তারিত তথ্য: API-তে পাঠানো সম্পূর্ণ অনুরোধ এবং প্রাপ্ত প্রতিক্রিয়া।
- সংক্ষিপ্ত সারাংশ: মিথস্ক্রিয়াগুলির একটি উচ্চ-স্তরের ওভারভিউ।
এবং আপনি এই লগিং সেটিংস দুটি উপায়ে নিয়ন্ত্রণ করতে পারেন:
- ক্লায়েন্ট লাইব্রেরি কনফিগারেশন: লাইব্রেরির নির্দিষ্ট কনফিগারেশন বিকল্পগুলি ব্যবহার করুন।
- পাইথনের সাথে প্রোগ্রাম্যাটিকভাবে: আরও সরাসরি নিয়ন্ত্রণের জন্য পাইথনের অন্তর্নির্মিত লগিং ফ্রেমওয়ার্ক ব্যবহার করুন।
যখন একটি 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))
অন্যান্য লগিং সেটিংস প্রোগ্রাম্যাটিকভাবে কনফিগার করা: একবার আপনার লগার অবজেক্ট হয়ে গেলে, আপনি পাইথনের অন্তর্নির্মিত লগিং মডিউল ব্যবহার করে প্রোগ্রাম্যাটিকভাবে অন্যান্য লগিং সেটিংসও পরিবর্তন করতে পারেন। উদাহরণস্বরূপ, লগিং স্তরটি
DEBUG
তে পরিবর্তন করতে (যা আরও বিস্তারিত বার্তা দেখাবে):logger.setLevel(logging.DEBUG)
লগ লেভেল
ক্লায়েন্ট কয়েকটি ভিন্ন স্তরে লগ তৈরি করে এবং আপনি নীচের কিছু বা সমস্ত দেখতে আপনার কনফিগারেশন সেট করতে পারেন:
স্তর | সফল অনুরোধ | ব্যর্থ অনুরোধ |
---|---|---|
DEBUG | JSON হিসেবে সম্পূর্ণ অনুরোধ এবং প্রতিক্রিয়া বস্তু সহ একটি বিস্তারিত লগ। | JSON হিসেবে সম্পূর্ণ অনুরোধ এবং ব্যতিক্রম বস্তু সহ একটি বিস্তারিত লগ। |
INFO | নির্দিষ্ট অনুরোধ এবং প্রতিক্রিয়া ক্ষেত্র সহ একটি সংক্ষিপ্ত সারাংশ। | JSON হিসেবে সম্পূর্ণ অনুরোধ এবং ব্যতিক্রম বস্তু সহ একটি বিস্তারিত লগ। |
WARNING | কোনটিই নয় | নির্দিষ্ট অনুরোধের তথ্য, ব্যতিক্রম অবস্থা এবং বার্তা সহ একটি সংক্ষিপ্ত সারাংশ। |
যেহেতু পাইথন লগিং ফ্রেমওয়ার্ক কনফিগার করা লেভেলের চেয়ে কম গুরুতর লগ বার্তাগুলিকে উপেক্ষা করে, তাই WARNING
এ সেট করার অর্থ হল আপনি কেবল ব্যর্থ অনুরোধ সম্পর্কিত সংক্ষিপ্ত বার্তাগুলি দেখতে পাবেন, তবে DEBUG
এ সেট করার অর্থ হল আপনি উপরের টেবিলে সমস্ত সম্ভাব্য ধরণের লগ দেখতে পাবেন।
ফাইলে লগিং করা হচ্ছে
যখন আপনি আপনার কমান্ড লাইন থেকে get_campaigns.py
এর মতো উদাহরণ স্ক্রিপ্ট চালান, তখন সাধারণত কনসোলে মুদ্রিত যেকোনো লগ বার্তা একটি ফাইলে পুনঃনির্দেশিত (অথবা "পাইপড") হতে পারে। এটি আপনার অপারেটিং সিস্টেমের শেলের একটি বৈশিষ্ট্য, পাইথন লাইব্রেরির নয়। এখানে কীভাবে করবেন:
একটি ফাইলে স্ট্যান্ডার্ড আউটপুট (বেশিরভাগ লগ) সংরক্ষণ করতে (এটি ওভাররাইট করে):
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
লগিং ইন্টারসেপ্টর
পাইথন ক্লায়েন্ট লাইব্রেরি অনুরোধ এবং প্রতিক্রিয়ার বিবরণ অ্যাক্সেস এবং লগ করার জন্য gRPC ইন্টারসেপ্টর ব্যবহার করে। আপনি কাস্টম লজিক সহ একটি gRPC ইন্টারসেপ্টর তৈরি করে আপনার নিজস্ব কাস্টম লগিং সেট আপ করতে পারেন। আরও বিস্তারিত জানার জন্য এবং একটি কাস্টম লগিং ইন্টারসেপ্টরের উদাহরণের জন্য লগিং গাইড দেখুন।