Gdy tworzysz jakąkolwiek aplikację, często chcesz rejestrować informacje, aby pomóc w diagnozowaniu błędów podczas programowania, rozpoznawać i diagnozować problemy klientów oraz w innych celach.
Apps Script udostępnia 3 różne mechanizmy rejestrowania:
Wbudowany dziennik wykonywania Apps Script. Ten dziennik jest nieskomplikowany i umożliwia przesyłanie strumieniowo w czasie rzeczywistym, ale działa tylko przez krótki czas.
Interfejs Cloud Logging w Konsoli Play, w którym znajdują się dzienniki, które są przechowywane przez wiele dni po utworzeniu.
Interfejs raportowania błędów w Konsoli programisty, który zbiera i rejestruje błędy występujące podczas działania skryptu.
Zostało to opisane w następnych sekcjach. Oprócz tych mechanizmów możesz też utworzyć własny kod rejestratora, który będzie np. zapisywać informacje w arkuszu kalkulacyjnym lub bazie danych JDBC.
Korzystanie z dziennika wykonywania Apps Script
Podstawową metodą logowania w Apps Script jest używanie wbudowanego logu wykonania. Aby wyświetlić te logi, u góry edytora kliknij Dziennik wykonywania. Gdy uruchomisz funkcję lub użyjesz debugera, logi będą przesyłane w czasie rzeczywistym.
Możesz skorzystać z usług logowania Logger
lub console
we wbudowanym logu wykonywania.
Te logi są przeznaczone do prostych testów podczas tworzenia i debugowania, i nie trwały zbyt długo.
Przykład:
Gdy ten skrypt zostanie uruchomiony z danymi wejściowymi „2” i „jan@example.com”, zostaną zapisane następujące logi:
[16-09-12 13:50:42:193 PDT] E-mail 2 z wierszem danych do jan@example.com
[16-09-12 13:50:42:271 PDT] Dane z wiersza 2: Koszt 103.24
Cloud Logging
Skrypt Apps Script zapewnia też częściowy dostęp do usługi Cloud Logging w Google Cloud Platform (GCP). Gdy potrzebujesz logowania, które trwa kilka dni, lub chcesz przeprowadzić bardziej złożone rozwiązanie logowania w środowisku produkcyjnym dla wielu użytkowników, dobrym rozwiązaniem jest Cloud Logging. Informacje o przechowywaniu danych i inne szczegóły znajdziesz w artykule Limity i Cloud Logging.
Jeśli potrzebujesz więcej limitu logowania, możesz przesłać prośbę o zwiększenie limitu Google Cloud Platform. Musisz mieć dostęp do projektu Cloud Platform używanego przez Twój skrypt.
Korzystanie z Cloud Logging
Logi Cloud są dołączone do projektu Google Cloud powiązanego z Twoim skryptem Apps Script. Uproszczoną wersję tych logów możesz wyświetlić w panelu Apps Script.
Aby w pełni wykorzystać możliwości Cloud Logging i jej możliwości, użyj standardowego projektu Google Cloud w projekcie skryptu. Dzięki temu masz dostęp do logów Cloud bezpośrednio w konsoli GCP i masz więcej opcji wyświetlania i filtrowania.
Dobrym pomysłem jest unikanie rejestrowania jakichkolwiek danych osobowych, takich jak adresy e-mail. Logi Cloud są automatycznie oznaczane aktywnymi kluczami użytkowników, których można używać do znajdowania wiadomości logu konkretnego użytkownika.
Za pomocą funkcji dostępnych w usłudze Apps Script console
możesz rejestrować ciągi znaków, formatowanie ciągów znaków, a nawet obiekty JSON.
Poniższy przykład pokazuje, jak używać usługi console
do logowania informacji w Cloud Operations.
Aktywne klucze użytkowników
Tymczasowe klucze użytkowników to wygodny sposób na identyfikowanie unikalnych użytkowników we wpisach Cloud Logging bez ujawniania tożsamości tych użytkowników. Klucze są oparte na skryptach i zmieniają się mniej więcej raz w miesiącu, aby zapewnić dodatkową ochronę, gdy użytkownik ujawni swoją tożsamość deweloperowi, na przykład podczas zgłaszania problemu.
Tymczasowe klucze użytkowników są lepsze niż identyfikatory logowania, takie jak adresy e-mail, ponieważ:
- Nie musisz niczego dodawać do dziennika – są już dostępne.
- Nie wymagają autoryzacji użytkownika.
- Chronią prywatność użytkowników.
Aby znaleźć tymczasowe aktywne klucze użytkowników we wpisach Cloud Logging, wyświetl logi Cloud w konsoli Google Cloud. Możesz to zrobić tylko wtedy, gdy Twój projekt skryptu korzysta ze standardowego projektu Google Cloud, do którego masz dostęp. Po otwarciu projektu Google Cloud w konsoli wybierz interesujący Cię wpis logu i rozwiń go, aby wyświetlić metadane > etykiety > script.googleapis.com/user_key.
Możesz też uzyskać tymczasowy aktywny klucz użytkownika, wywołując skrypt w skrypcie Session.getTemporaryActiveUserKey()
. Jednym ze sposobów użycia tej metody jest wyświetlanie klucza użytkownikowi podczas uruchamiania skryptu. Następnie użytkownicy mogą dołączać klucze podczas zgłaszania problemów, aby ułatwić znalezienie odpowiednich logów.
Rejestrowanie wyjątków
Logowanie wyjątków wysyła nieobsługiwane wyjątki w kodzie projektu skryptu do Cloud Logging wraz ze śledzeniem stosu.
Aby wyświetlić logi wyjątków, wykonaj te czynności:
- Otwórz projekt Apps Script.
- Po lewej stronie kliknij Wykonanie .
- U góry kliknij Dodaj filtr > Stan.
- Zaznacz pola wyboru Niepowodzenie i Upłynął limit czasu.
Możesz też wyświetlić zarejestrowane wyjątki w konsoli GCP, jeśli Twój projekt skryptu korzysta ze standardowego projektu Google Cloud, do którego masz dostęp.
Włącz logowanie wyjątków
W nowych projektach logowanie wyjątków jest domyślnie włączone. Aby włączyć logowanie wyjątków dla starszych projektów, wykonaj te czynności:
- Otwórz projekt skryptu.
- Po lewej stronie kliknij Ustawienia projektu .
- Zaznacz pole wyboru Log niewykrytych wyjątków w Cloud Operations.
Raportowanie błędów
Logowanie wyjątków jest automatycznie integrowane z usługą Cloud Error Reporting, która gromadzi i wyświetla błędy wygenerowane w Twoim skrypcie. Raporty o błędach Cloud możesz wyświetlić w konsoli Google Cloud. Jeśli pojawi się prośba o skonfigurowanie raportowania błędów, oznacza to, że skrypt nie zarejestrował jeszcze żadnych wyjątków. Nie musisz nic konfigurować oprócz włączenia logowania wyjątków.
Wymagania dotyczące logowania
Korzystanie z wbudowanego dziennika wykonywania nie jest wymagane.
Uproszczoną wersję logów Cloud możesz wyświetlić w panelu Apps Script. Aby jednak w pełni wykorzystać funkcje Cloud Logging i raportowania błędów, musisz mieć dostęp do projektu GCP skryptu. Jest to możliwe tylko wtedy, gdy Twój projekt skryptu korzysta ze standardowego projektu Google Cloud.