Нет вывода из Logger.log (...) в файл .gs скрипта Google Apps - что не так? - PullRequest
0 голосов
/ 17 января 2020

У меня есть куча кода на стороне сервера, из которого я регистрируюсь, используя Logger.log («message»). Но один файл .gs не регистрируется! Даже с таким простым утверждением:

function uploadFiles(form) {
  Logger.log("uploadFiles() Hello?");
  ...
}

Так просто, но я получаю пшик. Кто-нибудь знает причину, почему я не могу получить какой-либо вывод журнала из одного файла .gs, в то время как другие в том же проекте могут нормально регистрироваться?

1 Ответ

1 голос
/ 27 января 2020

Ответ:

Журнал сценариев Google Apps, в который записывается Logger.log(), очищается при каждом запуске сценария, поэтому после нескольких вызовов будут отображаться только самые последние журналы вызовов. .

Избежание и правильное ведение журнала:

Помимо обычного журнала, в который можно записать с помощью Logger.log(), Google Apps Script имеет два других метода ведения журнала - ведение журнала Stackdriver и Stackdriver Сообщения об ошибках. Согласно документации скрипта приложений:

Сценарий приложений предоставляет три различных механизма регистрации:

  • Встроенный логгер скриптов приложений, который является легким, но сохраняется только на короткое время.

  • Интерфейс ведения журнала Stackdriver в консоли разработчика, который предоставляет журналы, которые сохраняются в течение многих дней после их создания.

  • Интерфейс отчетов об ошибках Stackdriver в консоли разработчика, который собирает и записывает ошибки, возникающие во время работы сценария.

Ведение журнала Stackdriver:

Когда вы запрашиваете ведение журнала, которое длится дольше, чем для каждого прогона, предпочтительны журналы Stackdriver. Они прикреплены к проекту GCP, связанному с проектом Apps Script, а упрощенную версию можно найти на панели инструментов Apps Script . Регистрация исключений также может быть выполнена через журналы Stackdriver. В этот журнал можно записать, используя метод console.log() вместо Logger.log().

Отчеты об ошибках Stackdriver:

Вы можете просмотреть отчеты об ошибках Stackdriver в Консоль GCP .

Ссылки:


Этот ответ был обновлен после того, как появилась другая информация. Поскольку существуют известные проблемы с методом ведения журнала в Google Apps Script, исходный ответ был приведен ниже.


Похоже, что это ошибка!

Logger.log() функция должна регистрировать все, что передано методу, и независимо от того, сколько функций запущено за один вызов, все журналы от всех функций из вызова должны быть доступны для просмотра в регистраторе. Исключение only возникает, если слишком много вызовов Logger.log() и журналы обрезаны.

Как уже упоминалось выше, уже есть отчет по проблеме Google Трекер, который детализирует такое же поведение:

Google похоже, знает об этой проблеме, но если она вызывает проблемы, вы можете отправить свою ошибку об этом здесь .

Вы также можете нажать ☆ рядом с номером проблемы в левом верхнем углу на вышеупомянутых страницах, что позволяет Google знать, что больше людей сталкиваются с этим, и, таким образом, вероятность того, что его увидят быстрее, будет.

Надеюсь, это вам пригодится!

...