このライブラリは、Google Ads API のインタラクションに多用途のロギングを提供します。キャプチャできるのは次のとおりです。
- 詳細情報: API に送信されたリクエスト全体と受信したレスポンス。
- 簡潔な概要: API インタラクションの概要。
これらのロギング設定は、次の 2 つの方法で制御できます。
- クライアント ライブラリの構成:
google-ads.yamlファイルまたは環境変数で、ライブラリ固有の構成オプションを使用します。 - Python を使用してプログラムで作成する: Python の組み込み
loggingフレームワークを使用して直接制御します。
google-ads.yaml を使用して構成する
ロギングは、GoogleAdsClient インスタンスが初期化されると(load_from_storage を呼び出すときなど)、自動的に構成されます。初期化時に、ライブラリは次の処理を行います。
- 指定されたロギング設定を構成から読み取ります。
- これらの設定を Python の組み込み
logging.config.dictConfigに渡して有効にします。
たとえば、google-ads.yaml ファイルに logging セクションを追加できます。
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 セクションがないインストール済みパッケージとしてライブラリを使用する場合は、プログラムでロギングをアプリケーションのロギング設定と統合できます。addHandler を使用してロギング ハンドラをライブラリのロガー インスタンス(google.ads.googleads.client)に接続し、ターゲット ログレベルを設定します。
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)にログを送信する場合は、logging.StreamHandler に sys.stderr を渡します。
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 インターセプタを作成することで、独自のカスタム ロギングを設定できます。詳細とカスタム ロギング インターセプタの例については、ロギング ガイドをご覧ください。