Günlük kaydı, hata ayıklama ve kod izleme için önemli bir araçtır.
Cloud Functions, günlük kaydedici SDK'sını, özel Google Cloud Logging'i veya web için geliştirme için console
nesne standardını kullanma seçeneği sunar.
Günlük yazma
Çoğu durumda Cloud Functions logger SDK'sı önerilir ancak 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 günlük kaydı) hakkında bilgi sahibisiniz ve özel günlük kaydı için bunu kullanmayı tercih ediyorsunuz.
Cloud Functions günlük kaydı SDK'sını kullanma
Cloud Functions logger SDK'sı, console.log
ifadelerine benzer bir API'ye sahip ve diğer günlük düzeylerini destekleyen standart bir arayüz sağlar.
Bu SDK'yı kullanarak yapılandırılmış veri ile etkinlikleri günlüğe kaydedebilir, böylece daha kolay analiz ve takip edebilirsiniz.
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, son bağımsız değişken olarak günlüğe eklenen yapılandırılmış veriler gösterilmektedir:
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 CRITICAL
, ALERT
ve EMERGENCY
şeklinde günlük girişleri ve günlük önem düzeyleri yazabilirsiniz. LogSeverity başlıklı makaleyi inceleyin.
Özel Cloud Logging günlükleri
Günlük kaydedici SDK'sı içeren Cloud Functions günlükleri Cloud Logging tarafından desteklenir. Node.js için Cloud Logging kitaplığını kullanarak etkinlikleri yapılandırılmış verilerle günlüğe kaydederek daha kolay analiz ve izleme yapabilirsiniz.
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ı almak için önerilen çözüm, platformunuz için logger 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 standart yöntemlerin doğru şekilde çalışması için öncelikle özel bir modülün gerekli kılınması gerekir:
require("firebase-functions/logger/compat");
Günlük kaydedici uyumluluk modülüne ihtiyaç duyduğunuzda, 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ü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 Console'dan, Cloud Logging kullanıcı arayüzünden veya firebase
komut satırı aracı üzerinden görüntülenebilir.
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 Logging kullanıcı arayüzünde Cloud Functions günlüklerini 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 analizi araçları paketi sunar.
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 gerçekleşip gerçekleşmediğini bildiren bir uyarı oluşturabilirsiniz.
Grafiklerde ve uyarı politikalarında günlük tabanlı metriklerin nasıl kullanılacağı hakkında ayrıntılı bilgi için Grafik ve Uyarılar Oluşturma bölümüne bakın.