ไลบรารีนี้มีการบันทึกที่หลากหลายสำหรับการโต้ตอบกับ 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))
การกำหนดค่าการตั้งค่าการบันทึกอื่นๆ โดยใช้โปรแกรม: เมื่อมีออบเจ็กต์ logger แล้ว คุณยังเปลี่ยนการตั้งค่าการบันทึกอื่นๆ โดยใช้โปรแกรมได้ด้วย โมดูล logging ในตัวของ Python เช่น หากต้องการเปลี่ยนระดับการบันทึกเป็น
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 ด้วยตรรกะที่กำหนดเอง ดูรายละเอียดเพิ่มเติมและตัวอย่าง Interceptor การบันทึกที่กำหนดเองได้ในคู่มือการบันทึก