เมื่อพัฒนาแอปทุกประเภท คุณมักต้องการบันทึกข้อมูลเพื่อช่วยวินิจฉัยข้อผิดพลาดในระหว่างการพัฒนา เพื่อระบุและวินิจฉัยปัญหาของลูกค้า และเพื่อวัตถุประสงค์อื่นๆ
Apps Script มีกลไกการบันทึก 3 แบบดังนี้
บันทึกการดำเนินการ Apps Script ในตัว บันทึกนี้มีน้ำหนักน้อยและจะสตรีมแบบเรียลไทม์ แต่จะคงอยู่เป็นระยะเวลาสั้นๆ เท่านั้น
อินเทอร์เฟซ Cloud Logging ใน Developer Console ซึ่งให้บันทึกที่จะคงอยู่เป็นเวลาหลายวันหลังจากที่สร้าง
อินเทอร์เฟซการรายงานข้อผิดพลาดใน Developer Console ซึ่งรวบรวมและบันทึกข้อผิดพลาดที่เกิดขึ้นระหว่างที่สคริปต์ทำงานอยู่
ซึ่งอธิบายไว้ในส่วนต่อไปนี้ นอกเหนือจากกลไกเหล่านี้แล้ว คุณยังสร้างโค้ดตัวบันทึกของคุณเองได้ เช่น เขียนข้อมูลลงในสเปรดชีตหรือฐานข้อมูล JDBC ของการบันทึก
ใช้บันทึกการดำเนินการของ Apps Script
วิธีพื้นฐานในการเข้าสู่ระบบ Apps Script คือการใช้บันทึกการดำเนินการในตัว หากต้องการดูบันทึกเหล่านี้ ให้คลิกบันทึกการดำเนินการที่ด้านบนของตัวแก้ไข เมื่อคุณเรียกใช้ฟังก์ชันหรือใช้โปรแกรมแก้ไขข้อบกพร่อง ระบบจะสตรีมบันทึกแบบเรียลไทม์
คุณจะใช้บริการบันทึก Logger
หรือ console
ในบันทึกการดำเนินการในตัวได้
บันทึกเหล่านี้มีไว้เพื่อตรวจสอบแบบง่ายๆ ในระหว่างการพัฒนาและการแก้ไขข้อบกพร่อง และจะมีอยู่ไม่นานนัก
ลองดูตัวอย่างนี้ เช่น
เมื่อสคริปต์นี้ทำงานโดยมีอินพุต "2" และ "john@example.com" ระบบจะเขียนบันทึกต่อไปนี้
[16-09-12 13:50:42:193 PDT] การส่งอีเมลแถวที่ 2 ไปยัง john@example.com
[16-09-12 13:50:42:271 PDT] ข้อมูลแถว 2: ต้นทุน 103.24
Cloud Logging
นอกจากนี้ Apps Script ยังให้สิทธิ์เข้าถึงบริการ Cloud Logging ของ Google Cloud Platform (GCP) ได้บางส่วนด้วย หากต้องการให้การบันทึกคงอยู่เป็นเวลาหลายวัน หรือต้องการโซลูชันการบันทึกที่ซับซ้อนยิ่งขึ้นสำหรับสภาพแวดล้อมการใช้งานที่มีผู้ใช้หลายคน เราขอแนะนำให้ใช้ Cloud Logging ดูโควต้าและขีดจำกัดของ Cloud Logging สำหรับการเก็บรักษาข้อมูลและรายละเอียดโควต้าอื่นๆ
หากต้องการโควต้าการบันทึกเพิ่มเติม คุณส่งคำขอโควต้า Google Cloud Platform ได้ โดยคุณต้องมีสิทธิ์เข้าถึงโปรเจ็กต์ Cloud Platform ที่สคริปต์ใช้
การใช้ Cloud Logging
บันทึกของ Cloud จะแนบอยู่กับโปรเจ็กต์ Google Cloud ที่เชื่อมโยงกับ Apps Script คุณดูบันทึกในเวอร์ชันที่เรียบง่ายได้ในหน้าแดชบอร์ดของ Apps Script
หากต้องการใช้ Cloud Logging และความสามารถต่างๆ อย่างเต็มที่ ให้ใช้โปรเจ็กต์ Google Cloud มาตรฐานกับโปรเจ็กต์สคริปต์ ซึ่งช่วยให้คุณเข้าถึงบันทึกของ Cloud ในคอนโซล GCP ได้โดยตรงและมีตัวเลือกการดูและการกรองมากขึ้น
เมื่อบันทึก แนวทางปฏิบัติด้านความเป็นส่วนตัวที่ดีคือหลีกเลี่ยงการบันทึกข้อมูลส่วนบุคคลของผู้ใช้ เช่น อีเมล บันทึกของ Cloud จะได้รับการติดป้ายกำกับโดยอัตโนมัติด้วยคีย์ผู้ใช้ที่ใช้งานอยู่ ซึ่งคุณจะใช้เพื่อค้นหาข้อความบันทึกของผู้ใช้ที่ต้องการได้เมื่อจำเป็น
คุณบันทึกสตริง สตริงที่จัดรูปแบบ หรือแม้แต่ออบเจ็กต์ JSON ได้โดยใช้ฟังก์ชันจากบริการ Apps Script console
ตัวอย่างต่อไปนี้แสดงวิธีใช้บริการ console
เพื่อบันทึกข้อมูลใน Cloud Operations
คีย์ผู้ใช้ที่ใช้งานอยู่
คีย์ผู้ใช้ที่ใช้งานอยู่ชั่วคราวช่วยให้ระบุผู้ใช้ที่ไม่ซ้ำในรายการบันทึก Cloud ได้ง่ายโดยไม่เปิดเผยตัวตนของผู้ใช้เหล่านั้น โดยคีย์มีไว้สำหรับสคริปต์และเปลี่ยนประมาณเดือนละครั้งเพื่อให้ความปลอดภัยเพิ่มเติมในกรณีที่ผู้ใช้เปิดเผยตัวตนของตนต่อนักพัฒนาซอฟต์แวร์ เช่น ขณะรายงานปัญหา
คีย์ผู้ใช้ที่ใช้งานอยู่ชั่วคราวเหนือกว่าตัวระบุการบันทึก เช่น อีเมล เนื่องจากสาเหตุต่อไปนี้
- คุณไม่จำเป็นต้องเพิ่มอะไรลงในบันทึกของคุณ เพราะมีอยู่แล้ว
- ไม่ต้องมีการให้สิทธิ์จากผู้ใช้
- ช่วยปกป้องความเป็นส่วนตัวของผู้ใช้
หากต้องการค้นหาคีย์ผู้ใช้ชั่วคราวที่ใช้งานอยู่ในรายการบันทึก Cloud ให้ดูบันทึก Cloud ในคอนโซล Google Cloud คุณจะดำเนินการนี้ได้ก็ต่อเมื่อโปรเจ็กต์สคริปต์ใช้โปรเจ็กต์ Google Cloud มาตรฐานที่คุณมีสิทธิ์เข้าถึงเท่านั้น เมื่อเปิดโปรเจ็กต์ Google Cloud ในคอนโซลแล้ว ให้เลือกรายการบันทึกที่สนใจและขยายเพื่อดูข้อมูลเมตา > ป้ายกำกับ > script.googleapis.com/user_key
นอกจากนี้ คุณยังรับคีย์ผู้ใช้ชั่วคราวที่ใช้งานอยู่ได้โดยเรียกใช้ Session.getTemporaryActiveUserKey()
ในสคริปต์ วิธีหนึ่งที่จะใช้เมธอดนี้คือการแสดงคีย์แก่ผู้ใช้ขณะที่เรียกใช้สคริปต์ จากนั้นผู้ใช้อาจเลือกใส่คีย์ลงไปด้วยเมื่อรายงานปัญหา เพื่อช่วยให้คุณระบุบันทึกที่เกี่ยวข้องได้
การบันทึกข้อยกเว้น
การบันทึกข้อยกเว้นจะส่งข้อยกเว้นที่ไม่มีการจัดการในโค้ดโปรเจ็กต์สคริปต์ไปยัง Cloud Logging พร้อมกับสแต็กเทรซ
หากต้องการดูบันทึกข้อยกเว้น ให้ทำตามขั้นตอนด้านล่าง
- เปิดโปรเจ็กต์ Apps Script
- คลิกการดำเนินการ ทางด้านซ้าย
- คลิกเพิ่มตัวกรอง > สถานะที่ด้านบน
- เลือกช่องทำเครื่องหมายล้มเหลวและหมดเวลา
นอกจากนี้ คุณยังดูข้อยกเว้นที่บันทึกไว้ในคอนโซล GCP ได้ด้วย หากโปรเจ็กต์สคริปต์ของคุณใช้โปรเจ็กต์ Google Cloud มาตรฐานที่คุณมีสิทธิ์เข้าถึง
เปิดใช้การบันทึกข้อยกเว้น
ระบบจะเปิดใช้การบันทึกข้อยกเว้นสำหรับโปรเจ็กต์ใหม่โดยค่าเริ่มต้น หากต้องการเปิดบันทึกข้อยกเว้นสำหรับโปรเจ็กต์เก่า ให้ทำตามขั้นตอนด้านล่าง
- เปิดโปรเจ็กต์สคริปต์
- คลิกการตั้งค่าโปรเจ็กต์ ทางด้านซ้าย
- เลือกช่องทำเครื่องหมายบันทึกข้อยกเว้นที่ตรวจไม่พบของ Cloud Operations
Error Reporting
การบันทึกข้อยกเว้นจะผสานรวมกับ Cloud Error Reporting โดยอัตโนมัติ ซึ่งเป็นบริการที่รวบรวมและแสดงข้อผิดพลาดที่สร้างขึ้นในสคริปต์ของคุณ คุณดูรายงานข้อผิดพลาดของ Cloud ได้ในคอนโซล Google Cloud หากคุณได้รับแจ้งให้ "ตั้งค่าการรายงานข้อผิดพลาด" นั่นเป็นเพราะสคริปต์ของคุณยังไม่ได้บันทึกข้อยกเว้นใดๆ คุณไม่จำเป็นต้องตั้งค่าใดๆ นอกเหนือจากการเปิดใช้การบันทึกข้อยกเว้น
ข้อกำหนดในการบันทึก
ไม่มีข้อกำหนดในการใช้บันทึกการดำเนินการในตัว
คุณดูบันทึกของ Cloud เวอร์ชันที่เรียบง่ายได้ในหน้าแดชบอร์ดของ Apps Script อย่างไรก็ตาม หากต้องการใช้ Cloud Logging และการรายงานข้อผิดพลาดให้เกิดประโยชน์สูงสุด คุณต้องมีสิทธิ์เข้าถึงโปรเจ็กต์ GCP ของสคริปต์ ซึ่งจะทําได้ต่อเมื่อโปรเจ็กต์สคริปต์ใช้โปรเจ็กต์ Google Cloud มาตรฐานเท่านั้น