Saat mengembangkan jenis aplikasi apa pun, Anda sering kali ingin mencatat informasi untuk membantu mendiagnosis kesalahan selama pengembangan, untuk mengidentifikasi dan mendiagnosis masalah pelanggan, dan untuk tujuan lainnya.
Apps Script menyediakan tiga mekanisme logging yang berbeda:
Log eksekusi Apps Script bawaan. Log ini ringan dan melakukan streaming secara real time, tetapi hanya bertahan dalam waktu singkat.
Antarmuka Cloud Logging di Developer Console, yang menyediakan log yang bertahan selama beberapa hari setelah pembuatannya.
Antarmuka Error Reporting di Konsol Developer, yang mengumpulkan dan mencatat error yang terjadi saat skrip Anda berjalan.
Hal tersebut dijelaskan di bagian berikut. Selain mekanisme ini, Anda juga dapat mem-build kode logger sendiri yang, misalnya, menulis informasi ke spreadsheet atau database JDBC logging.
Menggunakan log eksekusi Apps Script
Pendekatan dasar untuk logging di Apps Script adalah menggunakan log eksekusi bawaan. Untuk melihat log ini, di bagian atas editor, klik Execution log. Saat Anda menjalankan fungsi atau menggunakan debugger, log akan di-streaming secara real time.
Anda dapat menggunakan layanan logging Logger
atau console
di log eksekusi bawaan.
Log ini ditujukan untuk pemeriksaan sederhana selama pengembangan dan proses debug, serta tidak bertahan lama.
Misalnya, pertimbangkan fungsi ini:
Saat skrip ini dijalankan dengan input "2" dan "john@example.com", log berikut akan ditulis:
[16-09-12 13:50:42:193 PDT] Mengirim email ke baris data 2 ke john@example.com
[16-09-12 13:50:42:271 PDT] Data Baris 2: Biaya 103,24
Cloud Logging
Apps Script juga memberikan akses sebagian ke layanan Cloud Logging Google Cloud Platform (GCP). Saat Anda memerlukan logging yang tetap ada selama beberapa hari, atau memerlukan solusi logging yang lebih kompleks untuk lingkungan produksi multi-pengguna, Cloud Logging adalah pilihan pilihan. Lihat Kuota dan batas Cloud Logging untuk mengetahui retensi data dan detail kuota lainnya.
Jika memerlukan lebih banyak kuota logging, Anda dapat mengirim permintaan kuota Google Cloud Platform. Ini mengharuskan Anda memiliki akses ke project Cloud Platform yang digunakan skrip.
Menggunakan Cloud Logging
Log Cloud dilampirkan ke project Google Cloud yang terkait dengan Apps Script Anda. Anda dapat melihat versi sederhana dari log ini di dasbor Apps Script.
Untuk memanfaatkan Cloud Logging sepenuhnya dan kemampuannya, gunakan project Google Cloud standar dengan project skrip Anda. Dengan begitu, Anda dapat mengakses log Cloud langsung di GCP Console, serta memberi Anda lebih banyak opsi tampilan dan pemfilteran.
Saat melakukan logging, sebaiknya jangan merekam informasi pribadi tentang pengguna, seperti alamat email. Log cloud otomatis diberi label dengan kunci pengguna aktif yang dapat Anda gunakan untuk menemukan pesan log pengguna tertentu jika diperlukan.
Anda dapat mencatat string, string yang diformat, dan bahkan objek JSON ke dalam log menggunakan fungsi yang disediakan oleh layanan console
Apps Script.
Contoh berikut menunjukkan cara menggunakan layanan console
untuk mencatat informasi ke dalam Cloud Operations.
Kunci pengguna aktif
Kunci pengguna aktif sementara memberikan cara yang praktis untuk menemukan pengguna unik di entri Cloud Log tanpa mengungkapkan identitas pengguna tersebut. Kunci diberikan per skrip dan diubah sekitar sebulan sekali untuk memberikan keamanan tambahan jika pengguna mengungkapkan identitasnya kepada developer, misalnya saat melaporkan masalah.
Kunci pengguna aktif sementara lebih unggul dari logging ID seperti alamat email karena:
- Anda tidak perlu menambahkan apa pun ke logging; sudah ada di sana.
- Tidak memerlukan otorisasi pengguna.
- Cookie melindungi privasi pengguna.
Untuk menemukan kunci pengguna aktif sementara di entri Cloud Log Anda, lihat log Cloud di Google Cloud Console. Anda hanya dapat melakukannya jika project skrip menggunakan project Google Cloud standar yang dapat Anda akses. Setelah Anda membuka project Google Cloud di console, pilih entri log yang diinginkan dan perluas untuk melihat metadata > labels > script.googleapis.com/user_key.
Anda juga bisa mendapatkan kunci pengguna aktif sementara dengan memanggil
Session.getTemporaryActiveUserKey()
dalam skrip Anda. Salah satu cara untuk menggunakan metode ini adalah dengan menampilkan kunci tersebut kepada pengguna
saat mereka menjalankan skrip. Kemudian, pengguna dapat memilih untuk menyertakan kunci mereka
saat melaporkan masalah untuk membantu Anda mengidentifikasi log yang relevan.
Logging pengecualian
Logging pengecualian mengirimkan pengecualian yang tidak tertangani dalam kode project skrip Anda ke Cloud Logging, bersama dengan pelacakan tumpukan.
Untuk melihat log pengecualian, ikuti langkah-langkah di bawah:
- Buka project Apps Script.
- Di sebelah kiri, klik Executions .
- Di bagian atas, klik Tambahkan filter > Status.
- Centang kotak Failed dan Timed out.
Anda juga dapat melihat pengecualian yang dicatat ke dalam log di GCP Console jika project skrip menggunakan project Google Cloud standar yang dapat Anda akses.
Mengaktifkan logging pengecualian
Logging pengecualian diaktifkan secara default untuk project baru. Guna mengaktifkan logging pengecualian untuk project yang lebih lama, ikuti langkah-langkah berikut:
- Buka project skrip.
- Di sebelah kiri, klik Project Settings .
- Pilih kotak centang Catat pengecualian yang tidak tertangkap pada Operasi Cloud.
Error Reporting
Logging pengecualian secara otomatis terintegrasi dengan Cloud Error Reporting, layanan yang menggabungkan dan menampilkan error yang dihasilkan di skrip Anda. Anda dapat melihat laporan error Cloud di Google Cloud Console. Jika Anda diminta untuk "Menyiapkan Error Reporting", ini karena skrip Anda belum mencatat pengecualian apa pun ke dalam log. Tidak diperlukan penyiapan selain mengaktifkan logging pengecualian.
Persyaratan logging
Tidak ada persyaratan untuk menggunakan log eksekusi bawaan.
Anda dapat melihat versi sederhana log Cloud di dasbor Apps Script. Namun, untuk mengoptimalkan Cloud Logging dan error reporting, Anda harus memiliki akses ke project GCP dari skrip tersebut. Hal ini hanya dapat dilakukan jika project skrip Anda menggunakan project Google Cloud standar.