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의 내장 logging 모듈을 사용하여 프로그래매틱 방식으로 기타 로깅 설정을 변경할 수도 있습니다. 예를 들어 로깅 수준을 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 인터셉터를 만들어 자체 맞춤 로깅을 설정할 수 있습니다. 자세한 내용과 맞춤 로깅 인터셉터의 예는 로깅 가이드를 참고하세요.