ロギングを有効にする

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