이 라이브러리는 Google Ads API 상호작용을 위한 다용도 로깅을 제공합니다. 다음 항목을 캡처할 수 있습니다.
- 세부정보: API로 전송된 전체 요청과 수신된 응답입니다.
- 간결한 요약: API 상호작용의 대략적인 개요입니다.
다음 두 가지 방법으로 로깅 설정을 제어할 수 있습니다.
- 클라이언트 라이브러리 구성:
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 인터셉터를 만들어 자체 맞춤 로깅을 설정할 수 있습니다. 자세한 내용과 맞춤 로깅 인터셉터의 예는 로깅 가이드를 참고하세요.