เขียนและดูบันทึก


การบันทึกเป็นเครื่องมือสำคัญสำหรับการแก้ไขข้อบกพร่องและตรวจสอบโค้ด Cloud Functions มีตัวเลือกให้คุณใช้ SDK บันทึก Google Cloud Logging ที่กําหนดเอง หรือมาตรฐานออบเจ็กต์ console สําหรับการพัฒนาสําหรับเว็บ

การเขียนบันทึก

ขณะที่ผู้บันทึก Cloud Functions แนะนำให้ใช้ SDK กับสถานการณ์ส่วนใหญ่ คุณอาจเลือกตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้

  • คุณมีฐานโค้ดอยู่แล้วและไม่ต้องการเปลี่ยนรูปแบบจาก console.log
  • คุณคุ้นเคยกับ Cloud Logging (เดิมคือบันทึก StackDriver) และต้องการนำไปใช้กับการบันทึกที่กำหนดเอง

การใช้ Logger SDK ของ Cloud Functions

Cloud Functions logger SDK มีอินเทอร์เฟซมาตรฐานที่มี API ที่คล้ายกับคำสั่ง console.log และรองรับระดับบันทึกอื่นๆ คุณใช้ SDK นี้เพื่อบันทึกเหตุการณ์ด้วยข้อมูลที่มีโครงสร้างได้ ซึ่งทำให้สามารถวิเคราะห์และตรวจสอบได้ง่ายขึ้น

SDK บันทึกรองรับรายการบันทึกที่เป็นส่วนหนึ่งของการนําเข้าไวลด์การ์ด เช่น

  const functions = require("firebase-functions/v1");

  functions.logger.log("Hello from info. Here's an object:", someObj);

หรือจะใช้การส่งออกแต่ละรายการก็ได้ ตัวอย่างนี้แสดง Structured Data ที่แนบมากับบันทึกเป็นอาร์กิวเมนต์สุดท้าย

const { warn } = require("firebase-functions/logger");


// Attach structured data to the log as the last argument.
warn("This is a 'WARNING' severity message with some metadata.", {
  key1: 'val1',
  key2: 'val2'
});
  • คำสั่ง logger.log() มีระดับบันทึกเป็น INFO
  • คำสั่ง logger.info() มีระดับการบันทึกเป็น INFO
  • คำสั่ง logger.warn() มีระดับการบันทึกเป็น WARNING
  • คำสั่ง logger.error() มีระดับบันทึกเป็น ERROR
  • ข้อความของระบบภายในจะมีระดับบันทึกเป็นแก้ไขข้อบกพร่อง

เมื่อใช้ logger.write() คุณจะเขียนรายการบันทึกระดับความรุนแรงเพิ่มเติมได้ CRITICAL, ALERT และ EMERGENCY โปรดดู LogSeverity

บันทึก Cloud Logging ที่กําหนดเอง

บันทึก Cloud Functions รายการที่มี SDK บันทึก สนับสนุนโดย Cloud Logging คุณสามารถใช้ไลบรารี Cloud Logging สำหรับ Node.js ในการบันทึกเหตุการณ์ด้วยข้อมูลที่มีโครงสร้าง ซึ่งช่วยให้วิเคราะห์และตรวจสอบได้ง่ายขึ้น

const { Logging } = require('@google-cloud/logging');

// ...

// Instantiate the logging SDK. The project ID will
// be automatically inferred from the Cloud Functions environment.
const logging = new Logging();
const log = logging.log('my-custom-log-name');

// This metadata is attached to each log entry. This specifies a fake
// Cloud Function called 'Custom Metrics' in order to make your custom
// log entries appear in the Cloud Functions logs viewer.
const METADATA = {
  resource: {
    type: 'cloud_function',
    labels: {
      function_name: 'CustomMetrics',
      region: 'us-central1'
    }
  }
};

// ...

// Data to write to the log. This can be a JSON object with any properties
// of the event you want to record.
const data = {
  event: 'my-event',
  value: 'foo-bar-baz',

  // Optional 'message' property will show up in the Firebase
  // console and other human-readable logging surfaces
  message: 'my-event: foo-bar-baz'
};

// Write to the log. The log.write() call returns a Promise if you want to
// make sure that the log was written successfully.
const entry = log.entry(METADATA, data);
log.write(entry);

กำลังใช้ console.log

โซลูชันที่แนะนําสําหรับการบันทึกจากฟังก์ชันคือการใช้ SDK บันทึกสําหรับแพลตฟอร์มของคุณ เมื่อใช้ Node.js คุณจะใช้การบันทึก JavaScript มาตรฐานแทนได้ เช่น console.log และ console.error แต่คุณต้องมี โมดูลพิเศษเพื่อแพตช์วิธีการมาตรฐานเพื่อให้ทำงานได้อย่างถูกต้อง:

require("firebase-functions/logger/compat");

เมื่อคุณต้องใช้โมดูลความเข้ากันได้ของตัวบันทึกแล้ว คุณสามารถใช้ console.log() วิธีตามปกติในโค้ดของคุณ:

exports.helloError = functions.https.onRequest((request, response) => {
  console.log('I am a log entry!');
  response.send('Hello World...');
});
  • คำสั่ง console.log() มีระดับบันทึกเป็น INFO
  • คำสั่ง console.info() มีระดับการบันทึกเป็น INFO
  • คำสั่ง console.warn() มีระดับบันทึกเป็น ERROR
  • คำสั่ง console.error() มีระดับการบันทึกเป็น ERROR
  • ข้อความของระบบภายในจะมีระดับบันทึกเป็นแก้ไขข้อบกพร่อง

การดูบันทึก

คุณดูบันทึกสำหรับ Cloud Functions ได้ใน คอนโซล Google Cloud, UI ของ Cloud Logging หรือผ่านเครื่องมือบรรทัดคำสั่ง firebase

การใช้ Firebase CLI

หากต้องการดูบันทึกด้วยเครื่องมือ firebase ให้ใช้คำสั่ง functions:log ดังนี้

firebase functions:log

หากต้องการดูบันทึกของฟังก์ชันที่เฉพาะเจาะจง ให้ระบุชื่อฟังก์ชันเป็นอาร์กิวเมนต์

firebase functions:log --only <FUNCTION_NAME>

ดูตัวเลือกการดูบันทึกทั้งหมดได้ที่ความช่วยเหลือสำหรับ functions:log

firebase help functions:log

การใช้คอนโซล Google Cloud

คุณสามารถดูบันทึกสำหรับฟังก์ชันได้ในคอนโซล Google Cloud

การใช้ UI ของ Cloud Logging

คุณสามารถดูบันทึกของ Cloud Functions ได้ในส่วน UI ของ Cloud Logging

กำลังวิเคราะห์บันทึก

Cloud Logging มีชุดเครื่องมือวิเคราะห์บันทึกที่มีประสิทธิภาพซึ่งคุณใช้ตรวจสอบ Cloud Functions ได้

แผนภูมิและการแจ้งเตือน

เมื่อสร้างเมตริกตามบันทึกเพื่อตรวจสอบฟังก์ชันแล้ว คุณสามารถสร้างแผนภูมิและการแจ้งเตือนตามเมตริกเหล่านี้ได้ ตัวอย่างเช่น คุณสามารถสร้าง แผนภูมิแสดงภาพเวลาในการตอบสนองในช่วงเวลาหนึ่ง หรือสร้างการแจ้งเตือนเพื่อแจ้งให้คุณทราบ หากเกิดข้อผิดพลาดบางอย่างบ่อยเกินไป

ดูข้อมูลโดยละเอียดเกี่ยวกับวิธีใช้เมตริกตามบันทึกในแผนภูมิและนโยบายการแจ้งเตือนได้ที่การสร้างแผนภูมิและการแจ้งเตือน