Buka konsol

Menulis dan melihat log

Pencatatan log adalah fitur penting untuk proses debug dan pemantauan kode. Cloud Functions memberi Anda objek console yang sama seperti yang Anda harapkan saat mengembangkan untuk web.

Menulis log

Log sederhana

Untuk menghasilkan baris log dari fungsi Anda, gunakan panggilan logging JavaScript standar seperti console.log dan console.error:

exports.helloError = functions.https.onRequest((request, response) => {
  console.log('I am a log entry!');
  response.send('Hello World...');
});
  • Perintah console.log() memiliki level log INFO.
  • Perintah console.info() memiliki level log INFO.
  • Perintah console.warn() memiliki level log ERROR.
  • Perintah console.error() memiliki level log ERROR.
  • Pesan sistem internal memiliki level log DEBUG.

Log StackDriver kustom

Log Cloud Functions didukung oleh StackDriver Logging. Anda dapat menggunakan library StackDriver Logging untuk Node.js untuk mencatat peristiwa dengan data terstruktur, sehingga analisis dan pemantauan bisa lebih mudah dilakukan.

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

// Instantiate the StackDriver 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);

Melihat log

Log untuk Cloud Functions dapat dilihat di Firebase console, Stackdriver Logging UI, atau melalui fitur command line firebase.

Menggunakan Firebase CLI

Untuk melihat log dengan fitur firebase, gunakan perintah functions:log:

firebase functions:log

Untuk melihat log fungsi tertentu, cantumkan nama fungsi sebagai argumen:

firebase functions:log --only <FUNCTION_NAME>

Untuk mengetahui berbagai opsi tampilan log, lihat bantuan untuk functions:log:

firebase help functions:log

Menggunakan Firebase console

Anda dapat melihat log untuk Cloud Functions dari Firebase console.

Menggunakan Stackdriver logging UI

Anda dapat melihat log untuk Cloud Functions di Stackdriver Logging UI.

Menganalisis log

StackDriver Logging menawarkan serangkaian fitur analisis log canggih yang dapat Anda gunakan untuk memantau Cloud Functions Anda. Berbagai fitur tersebut sangat canggih jika dikombinasikan dengan logging kustom.

Metrik berbasis log

Di StackDriver Logging UI, gunakan kolom filter lanjutan untuk mempersempit cakupan log ke fungsi yang ingin Anda analisis, lalu klik Kirim Filter untuk memfilter log. Misalnya, Anda bisa menganalisis log dari satu fungsi saja:

resource.type="cloud_function"
resource.labels.function_name="myCloudFunction"
resource.labels.region="us-central1"

Jika membuat log peristiwa dengan payload JSON kustom, Anda dapat memfilter menggunakan kunci dan nilai yang Anda berikan:

resource.type="cloud_function"
resource.labels.function_name="CustomMetrics"
jsonPayload.event="my-event"

Setelah memfilter log, Anda dapat menganalisisnya menggunakan metrik berbasis log. Klik tombol Buat Metrik untuk membuka editor metrik dan memilih jenis metrik:

  • Metrik penghitung: menghitung jumlah entri log yang cocok dengan filter. Misalnya, Anda dapat menghitung frekuensi terjadinya peristiwa tertentu.
  • Metrik distribusi: mengakumulasi data numerik dari entri log yang cocok dengan filter. Misalnya, Anda dapat melacak latensi operasi tertentu dalam fungsi Anda.

Untuk log berbasis teks, seperti yang dihasilkan dari console.log() dalam fungsi, Anda bisa mengekstrak nilai dan label dari kolom textPayload menggunakan ekspresi reguler. Untuk log kustom dengan data terstruktur, Anda dapat langsung mengakses data di kolom jsonPayload.

Diagram dan pemberitahuan

Setelah membuat metrik berbasis log untuk memantau fungsi, Anda dapat membuat diagram dan pemberitahuan berdasarkan metrik ini. Misalnya, Anda bisa membuat diagram untuk memvisualisasikan latensi dari waktu ke waktu, atau membuat pemberitahuan yang akan muncul jika error tertentu terlalu sering terjadi.

Pelajari cara Membuat Diagram dan Pemberitahuan untuk mengetahui informasi selengkapnya mengenai cara menggunakan metrik berbasis log dalam diagram dan kebijakan pemberitahuan.