Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Günlükleri yazın ve görüntüleyin

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Günlüğe kaydetme, kodda hata ayıklama ve izleme için önemli bir araçtır. Cloud Functions size web için geliştirme için kendi kaydedici SDK'sını, özel Google Cloud Logging'i veya console nesne standardını kullanma seçeneği sunar.

Günlük yazma

Cloud Functions günlükçü SDK'sı çoğu durumda tavsiye edilse 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 yapmayı tercih etmiyorsunuz.
  • 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 arabirim sağlar. Yapılandırılmış verilerle olayları günlüğe kaydetmek için bu SDK'yı kullanarak daha kolay analiz ve izleme yapabilirsiniz.

Günlükçü SDK'sı, joker karakter içe aktarmanı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 aktarımları da kullanabilirsiniz. Bu örnek, günlüğe eklenmiş yapılandırılmış verileri son bağımsız değişken olarak 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ı HATA günlük düzeyine sahiptir.
  • logger.error() komutları ERROR günlük düzeyine sahiptir.
  • Dahili sistem iletileri, DEBUG günlük düzeyine sahiptir.

logger.write() ile, CRITICAL , ALERT ve EMERGENCY günlük önem düzeylerine ek günlük girişleri yazabilirsiniz. LogSeverity'ye bakın.

Özel Cloud Logging günlükleri

Logger SDK'sına sahip Cloud Functions günlükleri, Cloud Logging tarafından desteklenir. Olayları yapılandırılmış verilerle günlüğe kaydetmek, daha kolay analiz ve izleme sağlamak için Node.js için Cloud Logging kitaplığını kullanabilirsiniz.

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, günlükçü SDK'sını kullanmaktır. Bunun yerine console.log ve console.error gibi standart JavaScript günlüğe kaydetme çağrılarını kullanabilirsiniz, ancak standart yöntemlerin düzgün çalışması için önce özel bir modüle gereksinim duymanız gerekir:

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

Kaydedici uyumluluk modülüne ihtiyaç duyduğunuzda, console.log() yöntemlerini kodunuzda 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 iletileri, DEBUG günlük düzeyine sahiptir.

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

Cloud Functions Günlükleri, Google Cloud Console , Cloud Logging UI veya firebase komut satırı aracı aracılığıyla görüntülenebilir.

Firebase CLI'yi kullanma

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

firebase functions:log

Belirli bir işleve ilişkin günlükleri 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 için yardımı görüntüleyin:

firebase help functions:log

Google Cloud Konsolunu Kullanma

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

Cloud Logging Kullanıcı Arayüzünü Kullanma

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

Günlükleri analiz etme

Cloud Logging, Bulut İşlevlerinizi izlemek için kullanabileceğiniz güçlü bir günlük analiz araçları paketi sunar. Bu araçlar, özel günlük kaydıyla birleştirildiğinde özellikle güçlüdür.

Günlük tabanlı metrikler

Bulut Günlüğü Kullanıcı Arayüzünde, günlük kapsamını analiz etmek istediğiniz işleve göre daraltmak için gelişmiş filtre alanını kullanın, ardından günlükleri filtrelemek için Filtreyi Gönder'e tıklayın. Örneğin, tek bir işlevden yalnızca günlükleri analiz edebilirsiniz:

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

Olayları özel JSON yükleriyle günlüğe kaydettiyseniz, sağladığınız anahtarları ve değerleri kullanarak filtre uygulayabilirsiniz:

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

Günlükleri filtreledikten sonra, günlük tabanlı ölçümleri kullanarak bunları analiz edebilirsiniz. Metrik düzenleyiciyi açmak ve bir metrik türü seçmek için Metrik Oluştur düğmesine tıklayın:

  • Sayaç ölçümleri: bir filtreyle eşleşen günlük girişlerinin sayısını sayın. Örneğin, belirli bir olayın meydana gelme sayısını sayabilirsiniz.
  • Dağıtım ölçümleri: bir filtreyle eşleşen günlük girişlerinden sayısal veriler toplayın. Örneğin, işlevlerinizdeki belirli işlemlerin gecikmelerini izleyebilirsiniz.

İşlevlerinizde console.log() 'dan kaynaklananlar gibi metin tabanlı günlükler için, normal ifadeler kullanarak textPayload alanından değerleri ve etiketleri çıkarabilirsiniz. Yapılandırılmış veri içeren özel günlükler için, jsonPayload alanındaki verilere doğrudan erişebilirsiniz.

Grafikler ve uyarılar

İşlevlerinizi izlemek için günlük tabanlı metrikler oluşturduktan sonra, bu metriklere 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 gelip gelmediğini size bildirmek için bir uyarı oluşturabilirsiniz.

Grafiklerde ve uyarı politikalarında günlük tabanlı ölçümlerin nasıl kullanılacağı hakkında ayrıntılı bilgi için Grafikler ve Uyarılar Oluşturma bölümüne bakın.