CodeBlanks Logo Icon CodeBlanks

Özet - Günlükleme

Winston, levels ve structured'ı birleştirerek bir log sistemi yazarsın.

Özet - Günlükleme

Bu grupta Node.js'te günlüklemenin temel araçlarını öğrendin: winston.createLogger ile logger oluşturmak, log seviyeleriyle (error, warn, info) öncelik belirlemek, transport'larla logları farklı hedeflere yazmak, yapısal loglama için format.json() kullanmak ve yüksek performans için Pino'yu tanımak.

Şimdi bunları birleştirip küçük bir logger iskeleti kuracaksın. İskelet hem konsola hem dosyaya JSON formatında log yazacak. Bu mini görev, günlükleme araçlarının nasıl birleştiğini gösterir.

Logger tasarımı

Bir üretim logger iskeleti şöyledir: createLogger ile logger, transports ile hem konsol hem dosya hedefi, format.json ile JSON formatı. level: "info" ile eşik belirlenir.

Akış: const logger = winston.createLogger({ level: "info", format: winston.format.json(), transports: [new winston.transports.Console(), new winston.transports.File({ filename: "app.log" })] });. Bu logger her logu JSON olarak konsola ve app.log dosyasına yazar. Üretimde error seviyesi için ayrı dosya, info seviyesi için ayrı dosya eklenebilir. Bu iskeletin üzerine zaman damgası, log döndürme ve merkezi log sunucusu gönderimi eklenebilir.

Uygulama Üretim logger iskeletini kur

winston içe aktar. winston.createLogger({ level: "info", format: winston.format.json(), transports: [new winston.transports.Console(), new winston.transports.File({ filename: "app.log" })] }) ile logger oluştur. logger.info("Sistem hazır") yaz.

Başlangıç kodu

index.js
// winston içe aktar ve logger oluştur
// buraya yaz

// info log yaz
// buraya yaz

Örnek çözüm

index.js
const winston = require("winston");
const logger = winston.createLogger({
  level: "info",
  format: winston.format.json(),
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: "app.log" })
  ]
});
logger.info("Sistem hazır");

Beklenen çıktı

Sistem hazır

Soru ve cevaplar

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

1 Logger iskeleti hangi parçaları birleştirir?

index.js
createLogger + transports + format.json
  • Yalnızca require
  • createLogger, transport'lar ve format.json Doğru cevap
  • Yalnızca console.log
  • Yalnızca info

Açıklama: createLogger + transports + format.json birleşir.

2 Aracı rolüne eşle

Kavram Anlamı
createLogger Logger oluşturur
transports Hedefleri belirler
format.json JSON formatı verir
logger.info Bilgi loglar

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