로깅 - AWS SDK for Go v2

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

로깅

AWS SDK for Go에는 애플리케이션에서 요청 문제 또는 실패를 디버깅하고 진단하기 위한 디버깅 정보를 활성화할 수 있는 로깅 기능이 있습니다. Logger 인터페이스와 ClientLogMode는 클라이언트가 로깅하는 방법과 대상을 결정하는 데 사용할 수 있는 주요 구성 요소입니다.

Logger

LoadDefaultConfig를 사용하여 Config를 구성할 때 기본값 Logger는 프로세스의 표준 오류(stderr)로 로그 메시지를 보내도록 구성됩니다. Logger 인터페이스를 충족하는 사용자 지정 로거는 config.WithLogger로 래핑하여 LoadDefaultConfig에 인수로 전달할 수 있습니다.

예를 들어 applicationLogger를 사용하도록 클라이언트를 구성하려면 다음을 수행합니다.

cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithLogger(applicationLogger))

이제 구성된 aws.Config를 사용하여 구성된 클라이언트가 applicationLogger에 로그 메시지를 보냅니다.

컨텍스트 인식 로거

Logger 구현은 선택적 ContextLogger 인터페이스를 구현할 수 있습니다. 이 인터페이스를 구현하는 로거는 현재 컨텍스트로 WithContext 메서드를 간접 호출합니다. 이를 통해 로깅 구현은 컨텍스트에 있는 값을 기반으로 추가 로깅 메타데이터를 작성할 수 있는 새 Logger를 반환할 수 있습니다.

ClientLogMode

기본적으로 서비스 클라이언트는 로그 메시지를 생성하지 않습니다. 디버깅을 위해 로그 메시지를 전송하도록 클라이언트를 구성하려면 ConfigClientLogMode 멤버를 사용합니다. ClientLogMode는 다음에 대한 디버깅 메시징을 활성화하도록 설정할 수 있습니다.

  • Signature Version 4(SigV4) 서명

  • 요청 재시도 횟수

  • HTTP 요청

  • HTTP 응답

예를 들어 HTTP 요청 및 재시도 로깅을 활성화하려면 다음을 수행합니다.

cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithClientLogMode(aws.LogRetries | aws.LogRequest))

사용 가능한 다양한 클라이언트 로그 모드는 ClientLogMode를 참조하세요.