ไลบรารีนี้มีฟีเจอร์การบันทึกที่หลากหลายสำหรับการโต้ตอบกับ Google Ads API โดยคุณสามารถบันทึกข้อมูลต่อไปนี้ได้
- ข้อมูลโดยละเอียด: คำขอทั้งหมดที่ส่งไปยัง API และการตอบกลับที่ได้รับ
- สรุปย่อ: ภาพรวมระดับสูงของการโต้ตอบ
และคุณสามารถควบคุมการตั้งค่าการบันทึกเหล่านี้ได้ 2 วิธีดังนี้
- การกำหนดค่าไลบรารีของไคลเอ็นต์: ใช้ตัวเลือกการกำหนดค่าเฉพาะของไลบรารี configuration
- ใช้ Python ในการเขียนโปรแกรม: ใช้เฟรมเวิร์ก การบันทึกในตัวของ Python เพื่อควบคุมได้ โดยตรงมากขึ้น
ระบบจะกำหนดค่าการบันทึกโดยอัตโนมัติเมื่อมีการเริ่มต้นอินสแตนซ์ GoogleAdsClient ขั้นตอนการเริ่มต้นนี้จะเกิดขึ้น เช่น เมื่อคุณใช้เมธอด load_from_storage โดยในขั้นตอนนี้ ไลบรารีจะดำเนินการดังนี้
- อ่านการตั้งค่าการบันทึกที่ระบุจาก การกำหนดค่า
- ส่งการตั้งค่าเหล่านี้ไปยัง
logging.config.dictConfigในตัวของ Python เพื่อเปิดใช้งาน
เมื่อใช้ไลบรารีนี้เป็นแพ็กเกจที่ติดตั้ง คุณต้องผสานรวมการบันทึกของไลบรารีกับการตั้งค่าการบันทึกของแอปพลิเคชัน โดยเฉพาะอย่างยิ่ง คุณต้องเพิ่มแฮนเดิลอร์การบันทึกลงในอินสแตนซ์ Logger ของไลบรารีเองด้วยเมธอด
addHandler
ตัวแฮนเดิลนี้จะเป็นตัวกำหนดตำแหน่งที่จะส่งข้อความในบันทึกของไลบรารี (เช่น ไปยังคอนโซล ไฟล์ ฯลฯ) หากต้องการทำเช่นนี้ ให้ดึงข้อมูลอินสแตนซ์ Logger ของไลบรารีก่อนตามที่แสดงไว้ที่นี่
import logging
logger = logging.getLogger('google.ads.googleads.client')
หลังจากดึงข้อมูล Logger ของไลบรารีแล้ว คุณสามารถบอกตำแหน่งที่จะแสดงข้อความบันทึกได้
การส่งบันทึกไปยังคอนโซล: หากต้องการแสดงข้อความบันทึกในคอนโซล ให้เพิ่มแฮนเดิลอร์พื้นฐาน วิธีส่งบันทึกไปยังเอาต์พุตมาตรฐาน (
stdout)และวิธีตั้งค่าแฮนเดิลอร์พื้นฐานที่จะบอกให้ Logger พิมพ์ไปยัง
stdoutimport 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 แล้ว คุณยังสามารถเปลี่ยนการตั้งค่าการบันทึกอื่นๆ โดยใช้โปรแกรมได้ด้วยโมดูลการบันทึก ในตัวของ 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 ด้วยตรรกะที่กำหนดเอง ดูรายละเอียดเพิ่มเติมและตัวอย่างตัวสกัดกั้นการบันทึกที่กำหนดเองได้ที่คู่มือการบันทึก