このライブラリには、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)にログを送信する場合は、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 インターセプタを作成することで、独自のカスタム ロギングを設定できます。詳細とカスタム ロギング インターセプタの例については、ロギングガイドをご覧ください。