При разработке любого приложения необходимо регистрировать информацию, чтобы выявлять ошибки в процессе разработки, определять и диагностировать проблемы, возникающие у пользователей, а также для других целей.
Google Apps Script предоставляет три различных механизма для ведения журналов:
Встроенный журнал выполнения Apps Script . Этот журнал имеет небольшой размер и передается в режиме реального времени, но сохраняется лишь короткое время.
Интерфейс Cloud Logging в консоли разработчика предоставляет доступ к журналам, которые сохраняются в течение многих дней после их создания.
Интерфейс «Отчеты об ошибках» в консоли разработчика собирает и записывает ошибки, возникающие во время выполнения вашего скрипта.
Они описаны в следующих разделах. В дополнение к этим механизмам, создайте собственный код логгера, который, например, будет записывать информацию в электронную таблицу для логирования или базу данных JDBC .
Используйте журнал выполнения Apps Script.
Один из основных способов ведения журналов в Apps Script — использование встроенного журнала выполнения. Чтобы просмотреть эти журналы, в верхней части редактора нажмите «Журнал выполнения» . При запуске функции или использовании отладчика журналы отображаются в режиме реального времени.
Используйте либо службу логирования Logger , либо службу логирования console во встроенном журнале выполнения.
Эти журналы предназначены для проверок в процессе разработки и отладки и сохраняются недолго.
Например, рассмотрим следующую функцию:
При запуске этого скрипта с входными данными "2" и "john@example.com" в лог записываются следующие данные:
> [16-09-12 13:50:42:193 PDT] Emailing data row 2 to john@example.com
> [16-09-12 13:50:42:271 PDT] Row 2 data: Cost 103.24
Облачный журнал
Apps Script также предоставляет частичный доступ к сервису Google Cloud Logging . Если вам требуется ведение журналов в течение нескольких дней или более сложное решение для многопользовательской производственной среды, Cloud Logging — предпочтительный выбор. Подробную информацию о сроках хранения данных и других параметрах квот см. в разделе «Квоты и ограничения Cloud Logging» .
Чтобы запросить дополнительную квоту на ведение журналов, отправьте запрос на квоту в Google Cloud . Для этого вам потребуется доступ к проекту Cloud Platform , который использует ваш скрипт.
Cloud Logging предоставляет ряд дополнительных сервисов помимо хранения логов, таких как оповещения и метрики. Эти сервисы недоступны через Apps Script.
Используйте облачное логирование
Журналы Cloud привязаны к проекту Google Cloud , связанному с вашим Apps Script. Упрощенную версию этих журналов можно посмотреть на панели управления Apps Script .
Чтобы в полной мере использовать возможности Cloud Logging, используйте стандартный проект Google Cloud вместе со своим проектом скрипта. Это позволит вам получать доступ к журналам Cloud Logging непосредственно в консоли Google Cloud и предоставит больше возможностей для просмотра и фильтрации.
Если вы используете среду выполнения Rhino, Cloud Logging не поддерживает службу Apps Script Logger . Вместо этого используйте console службу.
При ведении журналов рекомендуется избегать записи любой личной информации о пользователе, такой как адреса электронной почты, в соответствии с принципами конфиденциальности. Облачные журналы автоматически помечаются активными ключами пользователей, что позволяет при необходимости находить сообщения конкретного пользователя.
С помощью функций, предоставляемых console службой Apps Script, можно записывать в лог строки, форматированные строки и даже объекты JSON.
В следующем примере показано, как использовать console службу для регистрации информации в Cloud Operations.
Активные ключи пользователя
Временные активные ключи пользователей предоставляют удобный способ идентификации уникальных пользователей в записях Cloud Log без раскрытия их личности. Ключи присваиваются каждому скрипту и меняются примерно раз в месяц для обеспечения дополнительной безопасности в случае, если пользователь раскроет свою личность разработчику, например, при сообщении о проблеме.
Временные активные ключи пользователей превосходят идентификаторы для регистрации, такие как адреса электронной почты, по следующим причинам:
- Вам не нужно ничего добавлять в журналы событий; они уже там есть!
- Для их использования не требуется авторизация пользователя.
- Они защищают конфиденциальность пользователей.
Чтобы найти временные активные ключи пользователей в записях Cloud Log, просмотрите журналы Cloud Log в консоли Google Cloud . Делайте это только в том случае, если ваш проект скрипта использует стандартный проект Google Cloud , к которому у вас есть доступ. После открытия проекта Google Cloud в консоли выберите интересующую запись журнала и разверните ее, чтобы просмотреть метаданные > метки > script.googleapis.com/user_key .
Чтобы получить временный ключ активного пользователя, вызовите метод Session.getTemporaryActiveUserKey в вашем скрипте. Один из способов использования этого метода — отобразить ключ пользователю во время выполнения скрипта. Затем пользователи могут указать свои ключи при сообщении о проблемах, чтобы помочь вам идентифицировать соответствующие журналы.
Ведение журнала исключений
Журналирование исключений отправляет необработанные исключения в коде вашего скриптового проекта в Cloud Logging вместе с трассировкой стека.
Чтобы просмотреть журналы исключений, выполните следующие действия:
- Откройте проект Apps Script.
- Слева нажмите кнопку Executions .
- Вверху нажмите «Добавить фильтр» > «Статус» .
- Установите флажки «Сбой» и «Время ожидания истекло» .
Если ваш скриптовый проект использует стандартный проект Google Cloud , к которому у вас есть доступ, вы можете просмотреть зарегистрированные исключения в консоли Google Cloud .
Включить ведение журнала исключений
Для новых проектов ведение журнала исключений включено по умолчанию. Чтобы включить ведение журнала исключений для более старых проектов, выполните следующие действия:
- Откройте проект скрипта.
- В левой части экрана нажмите проекта» .
- Установите флажок «Регистрировать необработанные исключения в облачных операциях» .
Сообщение об ошибках
Система регистрации исключений автоматически интегрируется с Cloud Error Reporting — сервисом, который собирает и отображает ошибки, возникающие в вашем скрипте. Просматривайте отчеты об ошибках Cloud в консоли Google Cloud. Вам не нужно вручную настраивать систему регистрации ошибок или создавать записи трассировки. Apps Script автоматически заполняет необходимые поля при возникновении исключения или при использовании console.error с объектом Error . Если вам предлагается «Настроить систему регистрации ошибок», это означает, что ваш скрипт еще не регистрировал никаких исключений. Никакой дополнительной настройки, кроме включения регистрации исключений, не требуется.
Требования к ведению учета
Для использования встроенного журнала выполнения никаких требований не существует.
Просмотрите упрощенную версию журналов Cloud Logs на панели управления Apps Script . Однако, чтобы максимально эффективно использовать Cloud Logging и отчеты об ошибках, вам необходим доступ к проекту Google Cloud, в котором работает скрипт. Это возможно только в том случае, если ваш проект скрипта использует стандартный проект Google Cloud .