Library ini menyediakan logging serbaguna untuk interaksi Google Ads API. Anda dapat merekam:
- Informasi mendetail: Permintaan lengkap yang dikirim ke API dan respons yang diterima.
- Ringkasan singkat: Ringkasan umum interaksi API.
Anda dapat mengontrol setelan logging ini dengan dua cara:
- Konfigurasi library klien: Gunakan opsi
konfigurasi khusus library di file
google-ads.yamlatau variabel lingkungan Anda. - Secara terprogram dengan Python: Gunakan framework
loggingbawaan Python untuk kontrol langsung.
Mengonfigurasi melalui google-ads.yaml
Pencatatan log dikonfigurasi secara otomatis saat instance GoogleAdsClient diinisialisasi (misalnya, saat Anda memanggil load_from_storage). Saat inisialisasi, library:
- Membaca setelan logging yang Anda tentukan dari konfigurasinya.
- Meneruskan setelan tersebut ke
logging.config.dictConfigbawaan Python untuk mengaktifkannya.
Misalnya, Anda dapat menambahkan bagian logging ke file 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
Mengonfigurasi secara terprogram
Saat menggunakan library sebagai paket yang diinstal tanpa bagian logging di
file konfigurasi, Anda dapat mengintegrasikan logging-nya dengan penyiapan
logging aplikasi Anda secara terprogram. Lampirkan pengendali logging ke instance logger library (google.ads.googleads.client) menggunakan addHandler dan tetapkan tingkat log target:
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)
Jika Anda lebih suka mengirim log ke error standar (stderr), yang sering digunakan untuk
pesan error dan peringatan, teruskan sys.stderr ke logging.StreamHandler:
import logging
import sys
logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)
Level log
Klien membuat log di beberapa tingkat keparahan, dan Anda dapat mengonfigurasi logger untuk melihat beberapa atau semua hal berikut:
| Level | Permintaan berhasil | Permintaan gagal |
|---|---|---|
DEBUG |
Log mendetail dengan objek permintaan dan respons lengkap sebagai JSON. | Log mendetail dengan objek permintaan dan pengecualian lengkap sebagai JSON. |
INFO |
Ringkasan singkat dengan kolom permintaan dan respons tertentu. | Log mendetail dengan objek permintaan dan pengecualian lengkap sebagai JSON. |
WARNING |
Tidak ada | Ringkasan singkat dengan informasi permintaan tertentu, status pengecualian, dan pesan error. |
Karena framework logging Python mengabaikan pesan log yang kurang parah
daripada level yang dikonfigurasi, menyetel level ke WARNING hanya akan menampilkan pesan
singkat untuk permintaan yang gagal, sedangkan menyetel level ke DEBUG akan menampilkan semua jenis log dalam tabel.
Mencatat ke file
Anda dapat menulis log ke file secara terprogram di Python atau dengan mengalihkan output dari command line.
Mencatat ke file di Python
Untuk menulis log langsung ke file dari Python, lampirkan logging.FileHandler ke
pencatat log klien:
import logging
logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)
Mengalihkan output menggunakan shell
Saat menjalankan skrip contoh seperti get_campaigns.py dari
command line, Anda dapat mengalihkan output log konsol ke file menggunakan shell sistem operasi Anda.
Untuk menyimpan output standar ke file (menimpa file yang ada):
python get_campaigns.py -c $CUSTOMER_ID > campaign_logs.txt
Untuk menambahkan output standar ke file yang ada:
python get_campaigns.py -c $CUSTOMER_ID >> campaign_logs.txt
Untuk menyimpan output standar dan error standar (untuk error dan peringatan) ke file yang sama:
python get_campaigns.py -c $CUSTOMER_ID > all_logs.txt 2>&1
Atau, di Bash 4+:
python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt
Interceptor gRPC kustom
Library klien Python menggunakan interceptor gRPC untuk mengakses dan mencatat detail permintaan dan respons. Anda dapat menyiapkan logging kustom Anda sendiri dengan membuat interseptor gRPC dengan logika kustom. Lihat Panduan logging untuk mengetahui detail selengkapnya dan contoh interseptor logging kustom.