Günlükleri yazma ve görüntüleme


Günlük kaydı, hata ayıklama ve kod izleme için önemli bir araçtır. Cloud Functions, Google Özel Korumalı Alan'ın sunduğu günlük Cloud Logging veya web için geliştirmede kullanılan console nesne standardıdır.

Günlük yazma

Cloud Functions günlük kaydedici SDK çoğu durumda önerilir. aşağıdaki nedenlerden dolayı diğer seçeneklerden birini belirleyebilirsiniz:

  • Mevcut bir kod tabanınız var ve console.log ürününden yeniden düzenleme yapmayı tercih etmiyorsunuz.
  • Cloud Logging (eski adıyla StackDriver Logging) hakkında bilgi sahibisiniz ve özel günlük kaydı için kullanın.

Cloud Functions günlük kaydı SDK'sını kullanma

Cloud Functions günlük kaydı SDK'sı, console.log ifadelerine benzer ve diğer günlük düzeylerini destekler. Bu SDK'yı yapılandırılmış veri ile etkinlikleri günlüğe kaydetmek için kullanabilirsiniz. Böylece daha kolay analiz ve izleme yapabilirsiniz.

Günlük kaydedici SDK'sı, joker karakterle içe aktarma işleminin parçası olarak günlük girişlerini destekler. Örneğin:

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

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

Alternatif olarak, bireysel dışa aktarma işlemlerini de kullanabilirsiniz. Bu örnekte, günlüğe son bağımsız değişken olarak eklenen yapılandırılmış veri:

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() komutları INFO günlük düzeyindedir.
  • logger.info() komutları INFO günlük düzeyindedir.
  • logger.warn() komutları WARNING günlük düzeyindedir.
  • logger.error() komutlarının günlük düzeyi ERROR'dur.
  • Dahili sistem mesajlarının günlük düzeyi HATA AYIKLAMA şeklindedir.

logger.write() ile günlük girişleri ve günlük önem düzeyleri yazabilirsiniz CRITICAL, ALERT ve EMERGENCY. LogSeverity başlıklı makaleyi inceleyin.

Özel Cloud Logging günlükleri

Cloud Functions, günlük kaydı SDK'sı ile günlükler oluşturur Cloud Logging tarafından desteklenir. Node.js için Cloud Logging kitaplığını kullanabilirsiniz Böylece daha kolay analiz ve izleme imkanı sağlayan yapılandırılmış verilerle etkinlikleri günlüğe kaydedebilirsiniz.

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 uygulamasını kullanma

Bir işlevden günlük kaydı için önerilen çözüm, logger SDK'sını kullanmaktır. tercih edebilirsiniz. Node.js ile bunun yerine standart JavaScript günlük kaydını kullanabilirsiniz console.log ve console.error gibi aramalar yapabilirsiniz, ancak önce bir özel modülün düzgün çalışması için standart yöntemlere yama uygulayın:

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

Günlük kaydedici uyumluluk modülüne ihtiyaç duyduğunuzda, Kodunuzda normal şekilde console.log() yöntem:

exports.helloError = functions.https.onRequest((request, response) => {
  console.log('I am a log entry!');
  response.send('Hello World...');
});
  • console.log() komutları INFO günlük düzeyindedir.
  • console.info() komutları INFO günlük düzeyindedir.
  • console.warn() komutlarının günlük düzeyi ERROR'dur.
  • console.error() komutlarının günlük düzeyi ERROR'dur.
  • Dahili sistem mesajlarının günlük düzeyi HATA AYIKLAMA şeklindedir.

Günlükleri görüntüleme

Cloud Functions günlükleri Google Cloud konsolunuza Cloud Logging kullanıcı arayüzü veya firebase komut satırı aracı üzerinden kullanılabilir.

Firebase CLI'yı kullanma

firebase aracıyla günlükleri görüntülemek için functions:log komutunu kullanın:

firebase functions:log

Belirli bir işlevin günlüklerini görüntülemek için işlev adını bağımsız değişken olarak sağlayın:

firebase functions:log --only <FUNCTION_NAME>

Tüm günlük görüntüleme seçenekleri için functions:log yardımına bakın:

firebase help functions:log

Google Cloud Console'u kullanma

İşlevlerle ilgili günlükleri Google Cloud Console'da görüntüleyebilirsiniz.

Cloud Logging kullanıcı arayüzünü kullanma

Cloud Functions günlüklerini görüntüleyebilirsiniz Cloud Logging kullanıcı arayüzünde görebilirsiniz.

Günlükleri analiz etme

Cloud Logging, günlük performansınızda kullanabileceğiniz Cloud Functions'larınızı izlemek için kullanabileceğiniz çeşitli araçlar bulunur.

Grafikler ve uyarılar

İşlevlerinizi izlemek için günlük tabanlı metrikler oluşturduktan sonra grafikler ve uyarılar oluşturabilirsiniz. Örneğin, ekip üyeleri için Zaman içindeki gecikmeyi görselleştirmek için bir grafik oluşturabilir veya zaman içindeki gecikmeyi bir hata oluşur.

Nasıl yapılacağıyla ilgili ayrıntılı bilgi için Grafik ve Uyarı Oluşturma bölümüne bakın ve uyarı politikalarında günlük tabanlı metrikler kullanın.