CodeBlanks Logo Icon CodeBlanks

Winston

Winston ile yapılandırılabilir günlükleme öğrenirsin.

Winston nedir?

Winston, Node.js için en popüler günlükleme (logging) kütüphanesidir. Konsol çıktısının ötesinde: dosyaya yazma, log seviyeleri, zaman damgası ve biçimlendirme sunar. Üretim sistemlerinin neredeyse standardıdır.

Winston yerleşik değildir; npm install winston ile yüklersin. Sonra const winston = require("winston"); ile içe aktarır, winston.createLogger({ ... }) ile bir logger oluşturursun. console.log basit ve geçicidir; Winston ise kalıcı, yapılandırılabilir ve seviyelidir. Üretimde logları dosyaya, syslog'a veya bir merkezi log sunucusuna göndermek istersin. Winston'ın transports kavramı, logların nereye gideceğini belirler: konsol, dosya, HTTP üç noktası. Bu grupta Winston'ın temel araçlarını öğreneceksin.

createLogger ile logger oluşturma

Winston'da winston.createLogger({ ... }) ile logger oluşturursun. Yapılandırma; log seviyeleri, format ve transport'ları içerir. En basit haliyle sadece level ve transports verirsin.

Örnek: const logger = winston.createLogger({ level: "info", transports: [new winston.transports.Console()] });. Bu logger info ve üzeri logları konsola yazar. logger.info("Sunucu başladı") ile loglarsın. Winston'ın varsayılan seviyeleri şöyledir: error, warn, info, http, verbose, debug, silly. level ayarı hangi seviyenin ve üzeri logların yazılacağını belirler. Winston, üretim ve geliştirme ortamları için ayrı yapılandırmaya izin verir.

Uygulama Winston'ı içe aktar

winston modülünü require ile içe aktar. console.log ile "Winston hazır" yaz.

Başlangıç kodu

index.js
// winston modülünü içe aktar
// buraya yaz

// "Winston hazır" yazdır
// buraya yaz

Örnek çözüm

index.js
const winston = require("winston");
console.log("Winston hazır");

Beklenen çıktı

Winston hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Winston nasıl içe aktarılır?

index.js
const winston = require("winston")
  • const winston = require("winston") Doğru cevap
  • import winston from "log"
  • const winston = new Winston()
  • const winston = require("console")

Açıklama: Winston require('winston') ile içe aktarılır.

2 createLogger çağrısını tamamla

Soru
const logger = winston.____({ level: "info" });
Cevap
const logger = winston.createLogger({ level: "info" });

Açıklama: winston.createLogger ile logger oluşturulur.

3 Parçayı rolüne eşle

Kavram Anlamı
winston Kütüphane
createLogger Logger oluşturur
logger.info Bilgi loglar
transports Logların hedefi

İleri seviye bölümündeki tüm dersler