로그 작성 및 보기

이 페이지에서는 App Engine 앱에 사용할 수 있는 로그와 로그 항목을 작성하고 보는 방법을 설명합니다.

App Engine은 다음 두 가지 유형의 로그를 수집합니다.

  • 요청 로그: 앱으로 전송된 요청의 로그입니다. App Engine은 자동으로 요청 로그에 항목을 만듭니다.

  • 앱 로그: 이 페이지에 설명된 대로 지원되는 프레임워크 또는 파일에 기록하는 로그 항목입니다.

App Engine이 이러한 로그를 Cloud Logging 에이전트에 자동으로 보내면 로그 뷰어나 명령줄에서 또는 프로그래매틱 방식으로 볼 수 있습니다.

앱 로그 작성

로그 항목을 작성하려면 Cloud Logging에서 제공하는 라이브러리 호환 로깅 패키지를 사용하는 것이 좋습니다. 이 접근 방식은 Cloud Logging의 모든 기능을 사용 설정하며 몇 줄의 Google Cloud 관련 코드만 필요로 합니다.

안내 및 코드 샘플은 Go용 Cloud Logging 설정을 참조하세요.

대안: 구조화된 로그를 stdoutstderr에 작성

권장하는 접근 방식 대신 간단한 텍스트 문자열을 stdoutstderr에 보낼 수 있습니다. 문자열은 로그 뷰어, 명령줄, Cloud Logging API에 메시지로 표시되며 이를 출력한 App Engine 서비스 및 버전과 연결됩니다.

로그 뷰어에서 이러한 문자열을 심각도 수준별로 필터링하려면 구조화된 데이터로 형식을 지정해야 합니다. 자세한 내용은 구조화된 로깅을 참조하세요.

앱 로그의 항목을 요청 로그와 연결하려면 구조화된 앱 로그 항목에 요청의 추적 식별자가 포함되어야 합니다. X-Cloud-Trace-Context 요청 헤더에서 추적 식별자를 추출할 수 있습니다. 구조화된 로그 항목에서 ID를 logging.googleapis.com/trace 필드에 작성합니다. X-Cloud-Trace-Context 헤더에 대한 자세한 내용은 추적 요청 강제 실행을 참조하세요.

Cloud Run 문서에서 추적 ID가 있는 구조화된 로그 항목 작성 예시를 참조하세요. App Engine 앱에서 동일한 기술을 사용할 수 있습니다.

로그 보기

로그 뷰어를 사용하여 애플리케이션을 보고 로그를 요청할 수 있습니다.

  1. Cloud Console의 로그 뷰어로 이동합니다.

    로그 뷰어로 이동

  2. 페이지 상단에서 기존 Google Cloud 프로젝트를 선택합니다.

  3. 드롭다운 메뉴에서 리소스 유형으로 GAE 애플리케이션을 선택합니다.

  4. 요청 로그 항목과 상관관계가 있는 앱 로그 항목을 확인하는 방법은 다음과 같습니다.

    1. 선택기 메뉴에서 httpRequest.requestUrl 로그를 선택합니다.

    2. 요청 로그 항목을 펼칩니다. 요청 로그 항목 아래에 해당 요청과 관련된 앱 로그가 중첩되어 표시됩니다.

    간단한 텍스트 항목을 표준 출력으로 보내면 로그 뷰어를 사용하여 앱 항목을 심각도별로 필터링하거나 특정 요청에 해당하는 앱 로그를 확인할 수 없습니다. 로그 뷰어에서 텍스트 및 타임스탬프와 같은 다른 유형의 필터링을 계속 사용할 수 있습니다.

App Engine 서비스와 버전 및 기타 기준별로 로그 뷰어를 필터링할 수 있습니다. 로그에서 특정 항목을 검색할 수도 있습니다. 로그 보기 세부정보를 참조하세요.

명령줄을 사용하여 로그 보기

명령줄에서 App Engine 로그를 보려면 다음 명령어를 사용합니다.

gcloud app logs tail

자세한 내용은 gcloud 앱 로그 꼬리를 참조하세요.

프로그래매틱 방식으로 로그 읽기

프로그래매틱 방식으로 로그를 읽으려면 다음 방법 중 하나를 사용하면 됩니다.

가격 책정, 할당량, 로그 보관 정책

요청 및 앱 로그에 적용되는 가격 책정에 대한 자세한 내용은 Cloud Logging 가격 책정을 참조하세요.

로그 보관 정책 및 로그 항목의 최대 크기는 할당량 및 한도를 참조하세요. 로그를 더 오래 저장하려면 Cloud Storage로 로그를 내보냅니다. 또한 추가 처리를 위해 로그를 BigQuery 및 Pub/Sub로 내보낼 수 있습니다.

로그 리소스 사용량 관리

앱 코드의 항목을 더 많이 또는 더 적게 작성하여 앱 로그에서 로깅 활동량을 제어할 수 있습니다. 요청 로그는 자동으로 생성되므로 앱과 연결된 요청 로그 항목의 수를 관리하려면 Cloud Logging의 로그 제외 기능을 사용하세요.