CodeBlanks Logo Icon CodeBlanks

Pino

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

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

// logger oluştur
// buraya yaz

// info log yaz
// buraya yaz

Örnek çözüm

index.js
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

Soru
const logger = ____();
Cevap
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?

index.js
logger.info({ user: "Ayşe" }, "Login")
  • HTML
  • Düz metin
  • JSON Doğru cevap
  • XML

Açıklama: Pino varsayılan olarak JSON yazar.

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