로그 기록 및 보기

이 페이지에서는 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 서비스와 버전과 연결됩니다.

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

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

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

로그 보기

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

  1. Google 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의 로그 제외 기능을 사용합니다.

알려진 문제

앱 로그 항목이 요청 로그와 상관 관계가 없는 경우가 있습니다. 이 문제는 앱이 처음 요청을 수신하는 경우와 App Engine이 앱의 로그에 상태 메시지를 작성하는 경우에 발생합니다. 자세한 내용은 https://issuetracker.google.com/issues/138365527을 참조하세요.