Pino
- Node.js kursu
- İleri seviye
- Ders 65/83
- 5 dk
Pino ile yüksek performanslı günlükleme öğrenirsin.
Pino
Pino, Winston'a alternatif olarak çok yüksek performanslı bir günlükleme kütüphanesidir. Winston'a göre çok daha hızlıdır; çünkü logları asenkron yazar ve minimum ek yük sağlar. Yüksek trafikli sistemlerde tercih edilir.
Pino yerleşik değildir; npm install pino ile yüklersin. const pino = require("pino"); const logger = pino(); ile logger oluşturursun. Pino varsayılan olarak JSON yazar; yapısal loglama Pino'da bir seçenek değil, varsayılandır. logger.info({ user: "Ayşe" }, "Giriş") çağrısı JSON olarak yazılır. Pino, Winston'a göre 3-5 kat daha hızlıdır; ama biçimlendirme esnekliği daha azdır. Yüksek hacimli API'lerde Pino, düşük gecikme için idealdir. Bu derste Pino'nun temel kullanımını göreceksin.
Pino vs Winston
Pino ve Winston farklı tasarım felsefelerine sahiptir. Pino hız odaklıdır ve JSON'u varsayılan yapar. Winston esneklik odaklıdır ve birden çok format destekler. Hangisini seçeceğin, ihtiyacına bağlıdır.
Yüksek trafikli bir API'de her milisaniye önemliyse Pino seçilir. Eğer logları farklı dosyalara, farklı formatlarda yazacaksan Winston daha uygundur. Pino, logları bir JSON stream olarak yazar; bu da arama araçlarında kolay ayrışma sağlar. Winston ise transport'larla logları farklı hedeflere dağıtır. İkisi de olgun ve yaygın kütüphanelerdir. Seçim, performans mi esneklik mi sorusuna verilen yanıta bağlıdır. Çoğu üretim sistemi, hız için Pino'yu tercih eder.
Uygulama Pino logger oluştur
pino modülünü içe aktar. const logger = pino() ile logger oluştur. logger.info("Pino hazır") ile log yaz.
Başlangıç kodu
// pino modülünü içe aktar
// buraya yaz
// logger oluştur
// buraya yaz
// info log yaz
// buraya yazÖrnek çözüm
const pino = require("pino");
const logger = pino();
logger.info("Pino hazır");Beklenen çıktı
Pino hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Pino logger çağrısını tamamla
const logger = ____();
const logger = pino();
Açıklama: pino() ile logger oluşturulur.
2 Kütüphaneyi özelliğine eşle
| Kavram | Anlamı |
|---|---|
Pino |
Hız odaklı |
Winston |
Esneklik odaklı |
JSON |
Pino'nun varsayılanı |
transport |
Winston'ın kavramı |
3 Pino'nun varsayılan log formatı nedir?
logger.info({ user: "Ayşe" }, "Login")- HTML
- Düz metin
- JSON Doğru cevap
- XML
Açıklama: Pino varsayılan olarak JSON yazar.