ไลบรารีนี้มีการบันทึกที่หลากหลายสำหรับการโต้ตอบกับ Google Ads API คุณสามารถบันทึกข้อมูลต่อไปนี้ได้
- ข้อมูลโดยละเอียด: คำขอทั้งหมดที่ส่งไปยัง API และคำตอบที่ได้รับ
- สรุปแบบกระชับ: ภาพรวมระดับสูงของการโต้ตอบ
และคุณควบคุมการตั้งค่าการบันทึกเหล่านี้ได้ 2 วิธี ดังนี้
- การกําหนดค่าไลบรารีไคลเอ็นต์: ใช้ตัวเลือกการกําหนดค่าเฉพาะของไลบรารี
- โดยใช้โปรแกรมกับ Python: ใช้เฟรมเวิร์กการบันทึกในตัวของ Python เพื่อการควบคุมโดยตรงมากขึ้น
ระบบจะกําหนดค่าการบันทึกโดยอัตโนมัติเมื่อเริ่มต้นอินสแตนซ์ GoogleAdsClient
ขั้นตอนเริ่มต้นนี้จะเกิดขึ้น เช่น เมื่อคุณใช้เมธอด load_from_storage
เมื่อถึงจุดนี้ ห้องสมุดจะดำเนินการดังนี้
- อ่านการตั้งค่าการบันทึกที่ระบุจากการกําหนดค่า
- ส่งการตั้งค่าเหล่านี้ไปยัง
logging.config.dictConfig
ในตัวของ Python เพื่อเปิดใช้งาน
เมื่อใช้ไลบรารีนี้เป็นแพ็กเกจที่ติดตั้ง คุณต้องผสานรวมการบันทึกของไลบรารีนี้เข้ากับการตั้งค่าการบันทึกของแอปพลิเคชัน กล่าวโดยละเอียดคือ คุณต้องเพิ่มตัวแฮนเดิลการบันทึกลงในอินสแตนซ์บันทึกของไลบรารีด้วยเมธอด 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 ตัวอย่างเช่น หากต้องการเปลี่ยนระดับการบันทึกเป็น
DEBUG
(ซึ่งจะแสดงข้อความโดยละเอียดมากขึ้น) ให้ทำดังนี้logger.setLevel(logging.DEBUG)
ระดับบันทึก
ไคลเอ็นต์จะสร้างบันทึกในระดับต่างๆ 2-3 ระดับ และคุณสามารถตั้งค่าการกําหนดค่าเพื่อดูข้อมูลด้านล่างบางส่วนหรือทั้งหมดได้
ระดับ | คำขอสำเร็จ | คำขอไม่สำเร็จ |
---|---|---|
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
Interceptor การบันทึก
ไลบรารีไคลเอ็นต์ Python ใช้ gRPCอินเตอร์เซปเตอร์เพื่อเข้าถึงและบันทึกรายละเอียดคำขอและคำตอบ คุณตั้งค่าการบันทึกที่กำหนดเองได้โดยใช้การสร้างตัวขัดจังหวะ gRPC ที่มีตรรกะที่กำหนดเอง ดูรายละเอียดเพิ่มเติมและตัวอย่างของอินเตอร์เซปเตอร์การบันทึกที่กำหนดเองได้ที่คู่มือการบันทึก