ロギングを有効にする

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