Gdy tworzysz jakąkolwiek aplikację, często chcesz zapisywać informacje, które ułatwią diagnozowanie błędów w trakcie programowania, rozpoznanie i diagnozowanie problemów u klienta, a także do innych celów.
Apps Script udostępnia 3 różne mechanizmy logowania:
wbudowanego dziennika wykonywania Apps Script, Dziennik ten jest nieduży i przesyła dane strumieniowo w czasie rzeczywistym, ale pozostaje tylko przez krótki czas.
Interfejs Cloud Logging w konsoli programisty oferujący logi, które są przechowywane przez wiele dni po utworzeniu.
Interfejs Error Reporting w Konsoli Play, który zbiera i rejestruje błędy występujące podczas działania skryptu.
Zostały one opisane w dalszej części tego artykułu. Oprócz tych mechanizmów możesz też utworzyć własny kod rejestratora, który np. zapisuje informacje w arkuszu kalkulacyjnym lub bazie danych JDBC logowania.
Używanie dziennika wykonywania Apps Script
Podstawową metodą logowania w Apps Script jest używanie wbudowanego logu wykonywania. Aby wyświetlić te logi, u góry edytora kliknij Dziennik wykonywania. Gdy uruchomisz funkcję lub użyjesz debugera, logi będą strumieniowane w czasie rzeczywistym.
We wbudowanym logu wykonywania możesz użyć usług logowania Logger
lub console
.
Te logi są przeznaczone do prostych kontroli podczas programowania i debugowania i nie są przechowywane zbyt długo.
Na przykład użyj tej funkcji:
Po uruchomieniu tego skryptu z danymi wejściowymi „2” i „jan@example.com” zapisywane są następujące logi:
[16-09-12 13:50:42:193 PDT] Wysyłanie wiersza 2 danych na adres jan@example.com
[16-09-12 13:50:42:271 PDT] Row 2 data: Cost 103.24
Cloud Logging
Apps Script zapewnia też częściowy dostęp do usługi Cloud Logging w Google Cloud Platform (GCP). W przypadku wymagających logowania, które utrzymują się przez kilka dni, lub bardziej złożonego rozwiązania do logowania w środowisku produkcyjnym z wieloma użytkownikami, preferowanym rozwiązaniem jest Cloud Logging. Przechowywanie danych i inne informacje znajdziesz w artykule Limity i ograniczenia Cloud Logging.
Jeśli potrzebujesz większego limitu logowania, możesz przesłać prośbę o zwiększenie limitu w Google Cloud Platform. Wymaga to dostępu do projektu Cloud Platform, którego używa Twój skrypt.
Korzystanie z Cloud Logging
Logi Cloud są dołączone do projektu Google Cloud powiązanego z Twoim Apps Script. Uproszczoną wersję tych dzienników możesz wyświetlić w panelu Apps Script.
Aby w pełni wykorzystać możliwości usługi Cloud Logging i jej możliwości, użyj standardowego projektu Google Cloud ze swoim projektem skryptu. Dzięki temu będziesz mieć dostęp do logów Cloud bezpośrednio w konsoli GCP oraz zyskaj więcej opcji wyświetlania i filtrowania.
Podczas logowania zgodnie z zasadami ochrony prywatności należy unikać rejestrowania jakichkolwiek danych osobowych użytkownika, takich jak adresy e-mail. Logi Cloud są automatycznie oznaczone aktywnymi kluczami użytkownika, dzięki którym w razie potrzeby możesz zlokalizować komunikaty logów konkretnego użytkownika.
Za pomocą funkcji dostępnych w usłudze Apps Script console
możesz rejestrować ciągi tekstowe, sformatowane ciągi 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 aktywne klucze użytkowników to wygodny sposób na wykrywanie unikalnych użytkowników we wpisach Cloud Log bez ujawniania ich tożsamości. Klucze są przydzielane poszczególnym skryptom i zmieniają się mniej więcej raz w miesiącu, aby zapewnić dodatkowe bezpieczeństwo na wypadek, gdyby użytkownik ujawnił swoją tożsamość deweloperowi, na przykład podczas zgłaszania problemu.
Tymczasowe, aktywne klucze użytkowników są lepsze niż identyfikatory logowania, takie jak adresy e-mail, ponieważ:
- Nie musisz niczego dodawać do zapisów – są już dostępne!
- Nie wymagają autoryzacji użytkownika.
- Zapewniają ochronę prywatności użytkownika.
Aby znaleźć tymczasowe aktywne klucze użytkowników we wpisach Cloud Log, 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.
Tymczasowy klucz aktywnego użytkownika możesz też uzyskać, wywołując w skrypcie metodę Session.getTemporaryActiveUserKey()
. Jednym ze sposobów korzystania z tej metody jest wyświetlanie klucza użytkownikowi, gdy wykonuje on skrypt. Użytkownicy mogą wtedy uwzględnić swoje klucze podczas zgłaszania problemów, co pomaga identyfikować odpowiednie dzienniki.
Logowanie wyjątków
Logowanie wyjątków wysyła nieobsłużone wyjątki w kodzie projektu skryptu do Cloud Logging razem ze zrzutem stosu.
Aby wyświetlić dzienniki wyjątków, wykonaj te czynności:
- Otwórz projekt Apps Script.
- Po lewej stronie kliknij Uruchomienia .
- U góry kliknij Dodaj filtr > Stan.
- Zaznacz pola wyboru Niepowodzenie i Przekroczono 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
Logowanie wyjątków jest domyślnie włączone w nowych projektach. Aby włączyć logowanie wyjątków w starszych projektach, wykonaj te czynności:
- Otwórz projekt skryptu.
- Po lewej stronie kliknij Ustawienia projektu .
- Zaznacz pole wyboru Włącz nieobsłużone wyjątki od Cloud Operations.
Raportowanie błędów
Logowanie wyjątków automatycznie integruje się z Cloud Error Reporting – usługą, która gromadzi i wyświetla błędy wygenerowane w skrypcie. Możesz wyświetlić raporty o błędach Cloud w konsoli Google Cloud. Jeśli pojawi się prośba o „skonfigurowanie usługi Error Reporting”, oznacza to, że w skrypcie nie zostały jeszcze zarejestrowane żadne wyjątki. Nie musisz niczego konfigurować poza włączaniem logowania wyjątków.
Wymagania dotyczące logowania
Nie ma wymagań, aby korzystać z wbudowanego dziennika wykonywania.
Uproszczoną wersję logów Cloud możesz wyświetlić w panelu Apps Script. Aby jednak w pełni wykorzystać możliwości Cloud Logging i raportowania błędów, musisz mieć dostęp do projektu GCP skryptu. Jest to możliwe tylko wtedy, gdy projekt skryptu korzysta ze standardowego projektu Google Cloud.