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


Günlüğe kaydetme, kodun hatalarını ayıklamak ve izlemek için önemli bir araçtır. Cloud Functions, web için geliştirme yapmak için size günlükçü SDK'sını, özel Google Cloud Logging'i veya console nesne standardını kullanma seçeneği sunar.

Günlük yazma

Çoğu durumda Cloud Functions günlükçü SDK'sı önerilse de aşağıdaki nedenlerden dolayı diğer seçeneklerden birini tercih edebilirsiniz:

  • Mevcut bir kod tabanınız var ve console.log yeniden düzenleme yapmamayı tercih ediyorsunuz.
  • Cloud Logging'e (eski adıyla StackDriver günlük kaydı) aşinasınız ve bunu özel günlük kaydı için kullanmayı tercih ediyorsunuz.

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

Cloud Functions günlükçü SDK'sı, console.log ifadelerine benzer bir API'ye sahip olan ve diğer günlük düzeylerini destekleyen standart bir arayüz sağlar. Bu SDK'yı, olayları yapılandırılmış verilerle günlüğe kaydetmek için kullanabilirsiniz; böylece analiz ve izleme daha kolay hale gelir.

Günlükçü SDK'sı, joker karakterlerin içe aktarılmasının bir 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 aktarmaları kullanabilirsiniz. Bu örnek, günlüğe son bağımsız değişken olarak eklenen yapılandırılmış verileri gösterir:

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üzeyine sahiptir.
  • logger.info() komutları INFO günlük düzeyine sahiptir.
  • logger.warn() komutları WARNING günlük düzeyine sahiptir.
  • logger.error() komutları ERROR günlük düzeyine sahiptir.
  • Dahili sistem mesajları DEBUG günlük seviyesine sahiptir.

logger.write() ile, CRITICAL , ALERT ve EMERGENCY günlük ciddiyet düzeylerine ek olarak günlük girişleri yazabilirsiniz. Bkz. LogSeverity .

Özel Cloud Logging günlükleri

Günlükçü SDK'sına sahip Cloud Functions günlükleri Cloud Logging tarafından desteklenir. Olayları yapılandırılmış verilerle günlüğe kaydetmek için Node.js için Cloud Logging kitaplığını kullanabilirsiniz; böylece analiz ve izleme daha kolay hale gelir.

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 kullanma

Bir işlevden oturum açmak için önerilen çözüm, platformunuz için günlükçü SDK'sını kullanmaktır. Node.js ile bunun yerine console.log ve console.error gibi standart JavaScript günlük kaydı çağrılarını kullanabilirsiniz, ancak öncelikle standart yöntemlerin düzgün çalışması için yama uygulamak üzere özel bir modüle ihtiyacınız vardır:

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

Kaydedici uyumluluk modülüne ihtiyaç duyduktan sonra, kodunuzda console.log() yöntemlerini normal şekilde kullanabilirsiniz:

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üzeyine sahiptir.
  • console.info() komutları INFO günlük düzeyine sahiptir.
  • console.warn() komutları ERROR günlük düzeyine sahiptir.
  • console.error() komutları ERROR günlük düzeyine sahiptir.
  • Dahili sistem mesajları DEBUG günlük seviyesine sahiptir.

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

Bulut İşlevlerine ilişkin günlükler, Google Cloud konsolunda , Cloud Logging kullanıcı arayüzünde veya firebase komut satırı aracı aracılığıyla görüntülenebilir.

Firebase CLI'yi kullanma

Günlükleri firebase aracıyla 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>

Günlük görüntüleme seçeneklerinin tamamı için, functions:log yardımını görüntüleyin:

firebase help functions:log

Google Cloud konsolunu kullanma

İşlevlere ilişkin günlükleri Google Cloud konsolunda görüntüleyebilirsiniz.

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

Cloud Functions'a ilişkin günlükleri Cloud Logging kullanıcı arayüzünde görüntüleyebilirsiniz .

Günlükleri analiz etme

Cloud Logging, Cloud Functions'ınızı izlemek için kullanabileceğiniz güçlü bir günlük analiz araçları paketi sunar.

Grafikler ve uyarılar

İşlevlerinizi izlemek için günlük tabanlı ölçümler oluşturduktan sonra, bu ölçümlere dayalı grafikler ve uyarılar oluşturabilirsiniz. Örneğin, zaman içindeki gecikmeyi görselleştirmek için bir grafik oluşturabilir veya belirli bir hatanın çok sık meydana gelmesi durumunda sizi bilgilendirecek bir uyarı oluşturabilirsiniz.

Günlük tabanlı ölçümlerin grafiklerde ve uyarı politikalarında nasıl kullanılacağı hakkında ayrıntılı bilgi için bkz. Grafikler ve Uyarılar Oluşturma .