Logging 사용 설정

이 라이브러리는 Google Ads API 상호작용에 다양한 로깅을 제공합니다. 다음을 캡처할 수 있습니다.

  • 세부정보: API에 전송된 전체 요청 및 수신된 응답
  • 간결한 요약: 상호작용에 대한 개요입니다.

다음 두 가지 방법으로 이러한 로깅 설정을 제어할 수 있습니다.

  • 클라이언트 라이브러리 구성: 라이브러리별 구성 옵션을 사용합니다.
  • Python을 사용하여 프로그래매틱 방식으로: Python의 기본 제공 로깅 프레임워크를 사용하여 더 직접적으로 제어합니다.

GoogleAdsClient 인스턴스가 초기화되면 로깅이 자동으로 구성됩니다. 이 초기화 단계는 예를 들어 load_from_storage 메서드를 사용할 때 발생합니다. 이 시점에서 라이브러리는 다음을 실행합니다.

이 라이브러리가 설치된 패키지로 사용되는 경우 로깅을 애플리케이션의 로깅 설정과 통합해야 합니다. 특히 addHandler 메서드를 사용하여 라이브러리의 자체 로거 인스턴스에 로깅 핸들러를 추가해야 합니다. 이 핸들러는 라이브러리의 로그 메시지가 전달되는 위치(예: 콘솔, 파일 등)를 지정합니다. 이렇게 하려면 먼저 다음과 같이 라이브러리의 로거 인스턴스를 가져옵니다.

import logging

logger = logging.getLogger('google.ads.googleads.client')

라이브러리의 로거를 가져온 후 로그 메시지를 출력할 위치를 지정할 수 있습니다.

  • 콘솔에 로그 전송: 콘솔에 로그 메시지를 표시하려면 기본 핸들러를 추가합니다. 로그를 표준 출력 (stdout)으로 전달하는 방법은 다음과 같습니다.

    로거에 stdout에 출력하도록 지시하는 기본 핸들러를 설정하는 방법은 다음과 같습니다.

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stdout))
    

    오류 메시지 및 경고에 자주 사용되는 표준 오류 (stderr)로 로그를 전송하려면 다음 단계를 따르세요.

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stderr))
    
  • 프로그래매틱 방식으로 다른 로깅 설정 구성: 로거 객체가 있으면 Python의 내장 로깅 모듈을 사용하여 다른 로깅 설정을 프로그래매틱 방식으로 변경할 수도 있습니다. 예를 들어 로깅 수준을 DEBUG (자세한 메시지가 표시됨)로 변경하려면 다음을 실행합니다.

    logger.setLevel(logging.DEBUG)
    

로그 수준

클라이언트는 몇 가지 수준에서 로그를 생성하며 아래의 일부 또는 전체를 보도록 구성을 설정할 수 있습니다.

수준 요청 완료 요청 실패
DEBUG 전체 요청 및 응답 객체가 JSON으로 포함된 자세한 로그입니다. 전체 요청 및 예외 객체가 JSON으로 포함된 세부정보 로그입니다.
INFO 특정 요청 및 응답 필드가 포함된 간단한 요약입니다. 전체 요청 및 예외 객체가 JSON으로 포함된 세부정보 로그입니다.
WARNING 없음 특정 요청 정보, 예외 상태, 메시지가 포함된 간단한 요약입니다.

Python 로깅 프레임워크는 구성된 수준보다 심각도가 낮은 로그 메시지를 무시하므로 WARNING로 설정하면 요청 실패와 관련된 간결한 메시지만 표시되지만 DEBUG로 설정하면 위 표에 가능한 모든 유형의 로그가 표시됩니다.

파일에 로깅

명령줄에서 get_campaigns.py와 같은 예시 스크립트를 실행하면 일반적으로 콘솔에 출력되는 모든 로그 메시지를 파일로 리디렉션 (또는 '파이프')할 수 있습니다. 이는 Python 라이브러리 자체가 아닌 운영체제 셸의 기능입니다. 방법은 다음과 같습니다.

표준 출력 (대부분의 로그)을 파일에 저장 (덮어쓰기)하려면 다음 단계를 따르세요.

python get_campaigns.py -c $CLIENT_ID > campaign_logs.txt

표준 출력을 파일에 추가하려면 다음 단계를 따르세요.

python get_campaigns.py -c $CLIENT_ID >> campaign_logs.txt

표준 출력과 표준 오류 (오류/경고)를 모두 동일한 파일에 저장하려면 다음 단계를 따르세요.

python get_campaigns.py -c $CLIENT_ID > all_logs.txt 2>&1

또는 Bash 4 이상과 같은 일부 최신 셸에서 다음을 실행합니다.

python get_campaigns.py -c $CLIENT_ID &> all_logs.txt

로깅 인터셉터

Python 클라이언트 라이브러리는 gRPC 인터셉터를 사용하여 요청 및 응답 세부정보에 액세스하고 로깅합니다. 맞춤 로직으로 gRPC 인터셉터를 만들어 자체 맞춤 로깅을 설정할 수 있습니다. 맞춤 로깅 인터셉터에 관한 자세한 내용과 예시는 로깅 가이드를 참고하세요.