로깅

모든 종류의 앱을 개발할 때 유용한 정보를 기록하여 고객 문제를 식별 및 진단하기 위해 개발 중 결함을 진단 기타 용도로 사용할 수 있습니다.

Apps Script는 로깅을 위한 세 가지 메커니즘을 제공합니다.

  • 기본 제공되는 Apps Script 실행 로그입니다. 이 로그는 가볍고 실시간으로 스트리밍되지만 사용할 수 있습니다.

  • Cloud Logging 인터페이스는 새 버전을 사용하기 시작한 후 여러 날 동안 지속되는 로그를 만들 수 있습니다.

  • Error Reporting 인터페이스 개발자 콘솔에서 발생하는 오류를 수집하고 기록합니다. 스크립트를 실행할 수 있습니다

다음 섹션에서 설명합니다. 이러한 메커니즘 외에도 또한 로거 코드를 직접 작성하여 로깅 스프레드시트에 복사 또는 JDBC 데이터베이스로 구성됩니다.

Apps Script 실행 로그 사용

Apps Script에 로그인하는 기본 방법은 기본 제공 실행 로그 이러한 로그를 보려면 실행 로그를 클릭합니다. 함수를 실행하거나 로그 스트림을 실시간으로 스트리밍합니다

Logger 또는 console 로깅 서비스 실행할 수 있습니다

이러한 로그는 개발 및 디버깅 중에 간단한 검사를 위해 사용되며 매우 오래 지속되지 않습니다.

예를 들어 다음 함수를 살펴보겠습니다.

utils/logging.gs
/**
 * Logs Google Sheet information.
 * @param {number} rowNumber The spreadsheet row number.
 * @param {string} email The email to send with the row data.
 */
function emailDataRow(rowNumber, email) {
  console.log('Emailing data row ' + rowNumber + ' to ' + email);
  try {
    const sheet = SpreadsheetApp.getActiveSheet();
    const data = sheet.getDataRange().getValues();
    const rowData = data[rowNumber - 1].join(' ');
    console.log('Row ' + rowNumber + ' data: ' + rowData);
    MailApp.sendEmail(email, 'Data in row ' + rowNumber, rowData);
  } catch (err) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', err.message);
  }
}

이 스크립트가 입력 '2'로 실행되는 경우 및 'john@example.com' 다음 로그가 작성됩니다.

[16-09-12 13:50:42:193 PDT] 데이터 행 2를 john@example.com으로 이메일 전송
[16-09-12 13:50:42:271 PDT] 행 2 데이터: 비용 103.24

Cloud Logging

Apps Script는 Google Cloud Platform (GCP)에 대한 부분 액세스도 제공합니다. Cloud Logging 서비스 며칠 동안 지속되는 로깅이 필요하거나 더 복잡한 로깅이 필요한 경우 멀티 사용자 프로덕션 환경을 위한 솔루션인 경우 Cloud Logging이 선호됨 선택의 기로에 서게 됩니다. Cloud Logging 할당량 및 한도를 참조하세요. 를 참조하세요.

로깅 할당량이 더 필요한 경우 Google Cloud Platform 할당량 요청 제출 이를 위해서는 Cloud Platform 프로젝트 확인해 보시기 바랍니다.

Cloud Logging 사용

Cloud 로그는 Google Cloud 프로젝트에 연결됨 애플리케이션 스크립트에 연결됩니다. 이 시리즈의 간소화된 버전을 Apps Script 대시보드에서 확인할 수 있습니다.

Cloud Logging 및 관련 기능을 최대한 활용하려면 표준 Google Cloud 프로젝트 스크립트 프로젝트로 대체하세요 이렇게 하면 Cloud Logging에서 GCP 콘솔 더 많은 보기 및 필터링 옵션을 제공합니다.

기록할 때는 개인 정보를 기록하지 않는 것이 좋습니다. 사용자에 대한 정보(예: 이메일 주소) Cloud 로그는 자동으로 라벨이 지정됨 활성 사용자 키 필요할 때 특정 사용자의 로그 메시지를 찾는 데 사용할 수 있습니다.

문자열, 서식이 지정된 문자열, 심지어 JSON 객체도 로깅할 수 있습니다. Apps Script에서 제공하는 기능 console 서비스에만 적용됩니다.

다음 예는 console를 사용하는 방법을 보여줍니다. 서비스를 사용하여 Cloud 운영에 정보를 로깅할 수 있습니다.

utils/logging.gs
/**
 * Logs the time taken to execute 'myFunction'.
 */
function measuringExecutionTime() {
  // A simple INFO log message, using sprintf() formatting.
  console.info('Timing the %s function (%d arguments)', 'myFunction', 1);

  // Log a JSON object at a DEBUG level. The log is labeled
  // with the message string in the log viewer, and the JSON content
  // is displayed in the expanded log structure under "jsonPayload".
  const parameters = {
    isValid: true,
    content: 'some string',
    timestamp: new Date()
  };
  console.log({message: 'Function Input', initialData: parameters});
  const label = 'myFunction() time'; // Labels the timing log entry.
  console.time(label); // Starts the timer.
  try {
    myFunction(parameters); // Function to time.
  } catch (e) {
    // Logs an ERROR message.
    console.error('myFunction() yielded an error: ' + e);
  }
  console.timeEnd(label); // Stops the timer, logs execution duration.
}

활성 사용자 키

임시 활성 사용자 키를 사용하면 Cloud 로그 항목을 식별할 수 있습니다. 열쇠 스크립트당 1회, 한 달에 한 번 정도 변경하여 추가 보안을 제공합니다. 신고 시 사용자가 개발자에게 신원을 공개해야 하는 경우 있습니다.

임시 활성 사용자 키는 이메일과 같은 로깅 식별자보다 우수합니다. 다음과 같은 이유:

  • 로깅에 아무것도 추가할 필요가 없습니다. 이미 거기에 있습니다!
  • 사용자 승인이 필요하지 않습니다.
  • 사용자 개인 정보를 보호합니다.

Cloud 로그 항목에서 임시 활성 사용자 키를 찾으려면 다음 안내를 따르세요. Google Cloud 콘솔에서 Cloud 로그 보기 스크립트 프로젝트에서 표준 Google Cloud 프로젝트 액세스할 수 있습니다 콘솔에서 Google Cloud 프로젝트를 열면 관심 있는 로그 항목을 선택하고 펼쳐서 보기 메타데이터 > 라벨 > script.googleapis.com/user_key.

다음을 호출하여 임시 활성 사용자 키를 가져올 수도 있습니다. Session.getTemporaryActiveUserKey() 넣으십시오. 이 메서드를 사용하는 한 가지 방법은 사용자에게 키를 표시하는 것입니다. 스크립트를 실행할 수 있습니다 그런 다음 사용자는 키를 포함하도록 선택할 수 있습니다. 문제를 보고하면 관련 로그를 식별하는 데 도움이 됩니다.

예외 로깅

예외 로깅이 스크립트 프로젝트 코드에서 처리되지 않은 예외를 전송함 스택 트레이스와 함께 Cloud Logging으로 전달됩니다

예외 로그를 보려면 다음 단계를 따르세요.

  1. Apps Script 프로젝트를 엽니다.
  2. 왼쪽에서 실행 을 클릭합니다.
  3. 상단에서 필터 추가 > 상태를 탭합니다.
  4. 실패타임아웃 체크박스를 선택합니다.

GCP Console에서 로깅된 예외를 확인할 수도 있습니다. 스크립트 프로젝트가 표준 Google Cloud 프로젝트 액세스할 수 있습니다

예외 로깅 사용 설정

새 프로젝트에는 예외 로깅이 기본적으로 사용 설정됩니다. 예외 사용 설정 방법 로깅하려면 다음 단계를 따르세요.

  1. 스크립트 프로젝트를 엽니다.
  2. 왼쪽에서 프로젝트 설정을 클릭합니다. 입니다.
  3. Cloud 운영에 포착되지 않은 예외 로깅 체크박스를 선택합니다.

Error Reporting

예외 로깅은 Cloud Error Reporting, 스크립트에서 생성된 오류를 집계하고 표시하는 서비스입니다. 다음과 같은 작업을 할 수 있습니다. Google Cloud 콘솔에서 Cloud 오류 보고서 보기 'Error Reporting 설정' 메시지가 표시되는 경우 이는 스크립트가 아직 예외를 로깅하지 않은 것입니다. 그 외에는 설정이 필요하지 않습니다. 예외 로깅 사용 설정

로깅 요구사항

기본 제공 실행 로그를 사용하기 위한 요구사항은 없습니다.

다음에서 간소화된 버전의 Cloud 로그를 확인할 수 있습니다. Apps Script 대시보드. 그러나 반드시 액세스할 수 있어야 하는 Cloud Logging 및 Error Reporting을 최대한 활용하세요 스크립트의 GCP 프로젝트에 추가됩니다. 이는 스크립트 프로젝트가 표준 Google Cloud 프로젝트를 사용 중입니다.