Transports
- Node.js kursu
- İleri seviye
- Ders 63/83
- 5 dk
Winston transports ile çıktı hedefleri öğrenirsin.
Transports
Bir transport, logların nereye gideceğini belirler. Winston'ın yaygın transport'ları: Console (konsola), File (dosyaya), Http (HTTP üç noktasına). Bir logger'a birden çok transport ekleyebilirsin.
Örnek: transports: [new winston.transports.Console(), new winston.transports.File({ filename: "app.log" })]. Bu, logları hem konsola hem app.log dosyasına yazar. Transport'lar bağımsızdır; her biri kendi filtre ve formatına sahip olabilir. Üretimde logları merkezi bir sunucuya da göndermek isteyebilirsin; bunun için HTTP transport'ı kullanılır. Winston, özel transport yazmaya da izin verir. Transport kavramı, Winston'ın esnekliğinin temelidir; tek bir logger ile birden çok hedefe log gönderirsin.
File transport
File transport'ı logları bir dosyaya yazar. filename özelliği dosya adını, level özelliği hangi seviyenin yazılacağını belirler. Üretimde log dosyaları döndürme (rotation) ile büyümesi sınırlandırılır.
Örnek: new winston.transports.File({ filename: "app.log", level: "info" }). Bu transport info ve üzeri logları app.log dosyasına yazar. maxsize ile dosya boyutu sınırı, maxFiles ile dosya sayısı sınırı koyulur. Winston'ın winston-daily-rotate-file eklentisi günlük döndürme yapar. Üretimde log dosyaları hızlı büyür; döndürme olmadan disk dolar. Birden çok transport ile hata loglarını ayrı, bilgi loglarını ayrı dosyalarda tutabilirsin. Bu, log aramayı hızlandırır.
Uygulama Dosya transport'lı logger oluştur
winston modülünü içe aktar. winston.createLogger({ level: "info", transports: [new winston.transports.File({ filename: "app.log" })] }) ile logger oluştur. logger.info("Kayıt edildi") yaz.
Başlangıç kodu
// winston içe aktar
// buraya yaz
// File transportlı logger oluştur
// buraya yaz
// info log yaz
// buraya yazÖrnek çözüm
const winston = require("winston");
const logger = winston.createLogger({
level: "info",
transports: [new winston.transports.File({ filename: "app.log" })]
});
logger.info("Kayıt edildi");Beklenen çıktı
Kayıt edildi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Transport'ı hedefine eşle
| Kavram | Anlamı |
|---|---|
Console |
Konsola yazar |
File |
Dosyaya yazar |
Http |
HTTP üç noktasına yazar |
transports |
Transport listesi |
2 File transport hangi özellikle dosya adını alır?
new winston.transports.File({ filename: "app.log" })- path
- file
- name
- filename Doğru cevap
Açıklama: filename özelliği dosya adını verir.
3 File transport çağrısını tamamla
new winston.transports.File({ filename: "____" })
new winston.transports.File({ filename: "app.log" })
Açıklama: app.log dosyasına yazılır.