ไลบรารีนี้มีฟีเจอร์การบันทึกที่หลากหลายสำหรับการโต้ตอบกับ Google Ads API โดยคุณสามารถบันทึกข้อมูลต่อไปนี้ได้
- ข้อมูลโดยละเอียด: คำขอทั้งหมดที่ส่งไปยัง API และการตอบกลับที่ได้รับ
- ข้อมูลสรุปแบบย่อ: ภาพรวมระดับสูงของการโต้ตอบกับ API
คุณสามารถควบคุมการตั้งค่าการบันทึกเหล่านี้ได้ 2 วิธี
- การกำหนดค่าไลบรารีของไคลเอ็นต์: ใช้ตัวเลือก
การกำหนดค่าเฉพาะของไลบรารีในไฟล์
google-ads.yamlหรือตัวแปรสภาพแวดล้อม - กำหนดค่าด้วยโปรแกรมใน Python: ใช้เฟรมเวิร์ก
loggingในตัวของ Python เพื่อควบคุมโดยตรง
กำหนดค่าผ่าน google-ads.yaml
ระบบจะกำหนดค่าการบันทึกโดยอัตโนมัติเมื่อมีการเริ่มต้นอินสแตนซ์ GoogleAdsClient (เช่น เมื่อคุณเรียกใช้ load_from_storage) โดยเมื่อเริ่มต้น ไลบรารีจะดำเนินการดังนี้
- อ่านการตั้งค่าการบันทึกที่ระบุจาก การกำหนดค่า
- ส่งการตั้งค่าเหล่านั้นไปยังในตัวของ Python
logging.config.dictConfigเพื่อเปิดใช้งาน
ตัวอย่างเช่น คุณสามารถเพิ่มส่วน logging ลงในไฟล์ google-ads.yaml ได้ดังนี้
logging:
version: 1
disable_existing_loggers: false
formatters:
default_fmt:
format: '[%(asctime)s - %(levelname)s] %(message).5000s'
datefmt: '%Y-%m-%d %H:%M:%S'
handlers:
default_handler:
class: logging.StreamHandler
formatter: default_fmt
loggers:
'':
handlers: [default_handler]
level: INFO
กำหนดค่าด้วยโปรแกรม
เมื่อใช้ไลบรารีเป็นแพ็กเกจที่ติดตั้งไว้โดยไม่มีส่วน logging ในไฟล์การกำหนดค่า คุณสามารถผสานรวมการบันทึกของไลบรารีกับการตั้งค่าการบันทึกของแอปพลิเคชันด้วยโปรแกรมได้ แนบแฮนเดิลเลอร์การบันทึกกับอินสแตนซ์ของตัวบันทึกของไลบรารี (google.ads.googleads.client) โดยใช้ addHandler และ
ตั้งค่าระดับการบันทึกเป้าหมายดังนี้
import logging
import sys
# Retrieve the library's logger instance.
logger = logging.getLogger("google.ads.googleads.client")
# Direct logs to standard output (stdout).
logger.addHandler(logging.StreamHandler(sys.stdout))
# Set the log level to DEBUG to view detailed messages.
logger.setLevel(logging.DEBUG)
หากต้องการส่งบันทึกไปยังข้อผิดพลาดมาตรฐาน (stderr) ซึ่งมักใช้สำหรับ
ข้อความแสดงข้อผิดพลาดและคำเตือน ให้ส่ง sys.stderr ไปยัง logging.StreamHandler ดังนี้
import logging
import sys
logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)
ระดับการบันทึก
ไคลเอ็นต์จะสร้างบันทึกที่ระดับความรุนแรงต่างๆ และคุณสามารถกำหนดค่าตัวบันทึกให้แสดงข้อมูลบางส่วนหรือทั้งหมดต่อไปนี้ได้
| ระดับ | คำขอสำเร็จ | คำขอไม่สำเร็จ |
|---|---|---|
DEBUG |
บันทึกโดยละเอียดที่มีออบเจ็กต์คำขอและการตอบกลับทั้งหมดเป็น JSON | บันทึกโดยละเอียดที่มีออบเจ็กต์คำขอและการยกเว้นทั้งหมดเป็น JSON |
INFO |
ข้อมูลสรุปแบบย่อที่มีช่องคำขอและการตอบกลับที่เฉพาะเจาะจง | บันทึกโดยละเอียดที่มีออบเจ็กต์คำขอและการยกเว้นทั้งหมดเป็น JSON |
WARNING |
ไม่มี | ข้อมูลสรุปแบบย่อที่มีข้อมูลคำขอที่เฉพาะเจาะจง สถานะการยกเว้น และข้อความแสดงข้อผิดพลาด |
เนื่องจากเฟรมเวิร์กการบันทึกของ Python จะละเว้นข้อความในบันทึกที่มีความรุนแรงน้อยกว่าระดับที่กำหนดค่าไว้ การตั้งค่าระดับเป็น WARNING จะแสดงเฉพาะข้อความแบบย่อสำหรับคำขอที่ไม่สำเร็จ ในขณะที่การตั้งค่าระดับเป็น DEBUG จะแสดงบันทึกทุกประเภทในตาราง
บันทึกลงในไฟล์
คุณสามารถเขียนบันทึกลงในไฟล์ได้ด้วยโปรแกรมใน Python หรือโดยการเปลี่ยนเส้นทางเอาต์พุตจากบรรทัดคำสั่ง
บันทึกลงในไฟล์ใน Python
หากต้องการเขียนบันทึกลงในไฟล์โดยตรงจาก Python ให้แนบ logging.FileHandler กับตัวบันทึกของไคลเอ็นต์ดังนี้
import logging
logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)
เปลี่ยนเส้นทางเอาต์พุตโดยใช้เชลล์
เมื่อเรียกใช้สคริปต์ตัวอย่าง เช่น get_campaigns.py จาก
บรรทัดคำสั่ง คุณสามารถเปลี่ยนเส้นทางเอาต์พุตบันทึกของคอนโซลไปยังไฟล์ได้โดยใช้เชลล์ของระบบปฏิบัติการ
วิธีบันทึกเอาต์พุตมาตรฐานลงในไฟล์ (เขียนทับไฟล์ที่มีอยู่)
python get_campaigns.py -c $CUSTOMER_ID > campaign_logs.txt
วิธีเพิ่มเอาต์พุตมาตรฐานลงในไฟล์ที่มีอยู่
python get_campaigns.py -c $CUSTOMER_ID >> campaign_logs.txt
วิธีบันทึกทั้งเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐาน (สำหรับข้อผิดพลาดและคำเตือน) ลงในไฟล์เดียวกัน
python get_campaigns.py -c $CUSTOMER_ID > all_logs.txt 2>&1
หรือใน Bash 4+
python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt
ตัวสกัดกั้น gRPC ที่กำหนดเอง
ไลบรารีของไคลเอ็นต์ Python ใช้ตัวสกัดกั้น gRPC เพื่อเข้าถึง และบันทึกรายละเอียดคำขอและการตอบกลับ คุณสามารถตั้งค่าการบันทึกที่กำหนดเองได้โดยสร้างตัวสกัดกั้น gRPC ที่มีตรรกะที่กำหนดเอง ดูรายละเอียดเพิ่มเติมและตัวอย่างตัวสกัดกั้นการบันทึกที่ กำหนดเองได้ใน คู่มือการบันทึก