이 라이브러리는 Google Ads API 상호작용에 다양한 로깅을 제공합니다. 다음을 캡처할 수 있습니다.
- 세부정보: API에 전송된 전체 요청 및 수신된 응답
- 간결한 요약: 상호작용에 대한 개요입니다.
다음 두 가지 방법으로 이러한 로깅 설정을 제어할 수 있습니다.
- 클라이언트 라이브러리 구성: 라이브러리별 구성 옵션을 사용합니다.
- Python을 사용하여 프로그래매틱 방식으로: Python의 기본 제공 로깅 프레임워크를 사용하여 더 직접적으로 제어합니다.
GoogleAdsClient
인스턴스가 초기화되면 로깅이 자동으로 구성됩니다. 이 초기화 단계는 예를 들어 load_from_storage
메서드를 사용할 때 발생합니다. 이 시점에서 라이브러리는 다음을 실행합니다.
- 구성에서 지정된 로깅 설정을 읽습니다.
- 이러한 설정을 Python의 내장
logging.config.dictConfig
에 전달하여 활성화합니다.
이 라이브러리가 설치된 패키지로 사용되는 경우 로깅을 애플리케이션의 로깅 설정과 통합해야 합니다. 특히 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 인터셉터를 만들어 자체 맞춤 로깅을 설정할 수 있습니다. 맞춤 로깅 인터셉터에 관한 자세한 내용과 예시는 로깅 가이드를 참고하세요.