เปิดใช้การบันทึก

ไลบรารีนี้มีการบันทึกที่หลากหลายสำหรับการโต้ตอบกับ 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 การบันทึกที่กำหนดเองได้ในคู่มือการบันทึก