Günlüğe kaydetme, sorunları gidermek ve uygulama kullanımını analiz etmek için paha biçilmez bir araç olabilir. Bu paketler, basit bir süreç olmasına yardımcı olur.

Düzgün günlük kaydı, işlevsel web uygulamaları oluşturmanın ve sürdürmenin kritik bir yönüdür. Hataları izlemenize, performans sorunlarını teşhis etmenize ve kullanıcıların uygulamanızla nasıl etkileşim kurduğunu anlamanıza yardımcı olabilir.

Node.js, yapılandırılmış günlükler oluşturmanıza ve yönetmenize yardımcı olacak birçok günlük kaydı paketine sahiptir. Burada, şu anda Node.js ekosisteminde bulunan en iyi günlük tutma paketlerini ve bunların nasıl kullanılacağını keşfedeceksiniz.

1. Winston

Winston, çoklu aktarımlar da dahil olmak üzere esnek günlük kaydı işlevselliği sağlayan bir Node.js kitaplığıdır. Bir "aktarım", günlükleriniz için bir depolama ortamıdır.

Winston konsol, dosya ve ağ aktarımlarını destekler. Bu, günlüklerinizi konsola yazdırabileceğiniz, bir dosyaya yazabileceğiniz veya bir ağ üzerinden gönderebileceğiniz anlamına gelir. Winston'ın günlük kaydı düzeylerini kullanarak, özel taşımalar oluşturabilir ve günlükleri önem derecesine göre filtreleyebilirsiniz.

instagram viewer

Winston'ı kullanarak proje dizininize bir bağımlılık olarak yükleyebilirsiniz. npm, JavaScript paket yöneticisi. Bu komutu çalıştırın:

npm winston'ı kur

Aşağıdaki kod bloğu, Winston kullanılarak temel bir kayıt sisteminin nasıl kurulacağını gösterir. Günlükleri farklı konumlar ve değişen önem düzeyleri için tanımlayabilirsiniz.

sabit winston = gerekmek("winston");

// Winston günlüğü
sabit günlükçü = winston.createLogger({
seviye: 'bilgi',
biçim: winston.format.json(),
varsayılanMeta: { hizmet: "hizmetim" },
ulaşım: [
yeni winston.transports. Konsol(),
yeni winston.transports. Dosya({ dosya adı: "hata.log", seviye: 'hata' }),
yeni winston.transports. Dosya({ dosya adı: "birleştirilmiş. günlük" })
]
});

kaydedici.bilgi("Merhaba Winston!");
kaydedici.uyar("Uyarı: Bir sorun olabilir.");
kaydedici.hata('Bir hata oluştu.');

Bu kod, üç aktarımlı bir kaydediciyi yapılandırır. İlki, günlük mesajlarını konsola gönderecek olan bir konsol aktarımıdır. İkincisi, "hata" düzeyine sahip günlükleri bir "error.log" dosyasına yazacak bir dosya aktarımıdır. Üçüncüsü, tüm günlükleri bir "combined.log" dosyasına yazacak bir dosya aktarımıdır.

Günlükçü, varsayılan olarak "bilgi" seviyesinde günlüğe kaydedilecek şekilde ayarlanmıştır ve "hizmet" alanı "hizmetim" olarak ayarlanmış bir varsayılan meta veri nesnesi içerir.

Kod daha sonra sırasıyla "bilgi", "uyar" ve "hata" seviyelerinde kaydediciyi kullanarak üç mesajı günlüğe kaydeder. Bu mesajlar, aktarımların yapılandırmasına göre konsola ve uygun günlük dosyalarına gönderilir.

2. morgan

Morgan, Node.js için temel istek günlüğü yetenekleri sağlayan bir günlük kaydı ara yazılımıdır. Hafif ve kullanımı kolay olacak şekilde tasarlanmıştır. Morgan, HTTP isteklerini yakalayarak ve istek yöntemi, URL, durum kodu vb. gibi ilgili bilgileri günlüğe kaydederek çalışır.

Morgan'ın en önemli faydalarından biri basitliğidir. Kurulum için ek bir yapılandırma gerektirmediğinden, bunu birkaç satır kodla bir Node.js uygulamasına ekleyebilirsiniz.

Morgan, aşağıdakiler de dahil olmak üzere birden fazla günlük formatını destekler: yaygın, kombine, kısa, minik, Ve dev biçimleri, ihtiyaçlarınıza en uygun olanı seçmenize olanak tanır.

Bu komutu çalıştırarak Morgan'ı proje dizininize bir bağımlılık olarak kurabilirsiniz:

npm morgan'ı kur

Bu kod, Morgan'ın nasıl kullanılacağını gösterir. Ekspres uygulama:

sabit ifade = gerekmek("ifade etmek");
sabit morgan = gerekmek("morgan");
sabit uygulama = ekspres();

uygulama.kullan (morgan("dev"));

uygulama.get("/", (gerekli, res) => {
res.gönder("Selam Dünya!");
});

uygula.dinle(3000, () => konsol.kayıt("Uygulama Başlatıldı"));

Kod, Morgan'ı kullanarak başlatır. dev biçim. Kök rotaya (/) bir GET isteği yaptığınızda, Morgan bu isteğin ayrıntılarını konsola kaydeder.

Sadeliğine rağmen Morgan, Node.js uygulamaları için temel istek günlükleme yetenekleri sağlayan güçlü bir günlük kaydı paketidir.

3. Pino

Pino, Node.js uygulamaları için hızlı performans ve düşük ek yük sağlayan popüler ve hafif bir günlük kaydı paketidir. onların kriterleri.

Pino, özel aktarımlarla kolayca genişletilen birden çok taşıma türünü destekler. Pino'nun temel özelliklerinden biri, ayrıştırılmalarını ve analiz edilmelerini kolaylaştıran JSON biçimli mesajları günlüğe kaydetme yeteneğidir.

Pino'nun kullanımı, Node.js çerçevesine bağlı olarak değişir; aşağıdaki komutu çalıştırarak Pino'yu Express proje dizininize bir bağımlılık olarak kurabilirsiniz:

npm pino-http'yi kurun

Farklı çerçeveler için kontrol edin pin belgeleri.

Bu kod bloğu, Pino'nun bir Express uygulamasında kullanımını gösterir:

sabit ifade = gerekmek("ifade etmek");
sabit uygulama = ekspres();
sabit pino = gerekmek('pino-http')()

app.use (pino)

uygulama.get("/", (gerekli, res) => {
pino (gerekli, res) // istek ve yanıtı günlüğe kaydeder
talep.log.bilgi("kök yolu") // ek bilgileri günlüğe kaydeder
res.gönder("Selam Dünya!");
});

uygula.dinle(3000, () => konsol.kayıt("Uygulama Başlatıldı"));

Bu kod, Pino'yu başlatır ve ara yazılım olarak kaydeder. Kök rotaya (/) bir GET isteği yaptığınızda, Pino, isteğinizin ayrıntılarını ve konsola yanıtını günlüğe kaydeder.

4. hata ayıklama

Debug, Node.js çekirdeğinin hata ayıklama tekniğinden sonra modellenen Node.js için bir günlük kaydı paketidir. Kodu değiştirmeden günlüğe kaydetmeyi seçerek etkinleştirmenize veya devre dışı bırakmanıza olanak tanıyan, hata ayıklamayı ve sorunları gidermeyi kolaylaştıran hafif bir günlük kaydı çözümü sağlar.

Hata ayıklama ayrıca uygulamanızdaki bileşenlere ve modüllere dayalı olarak günlüklerinize hiyerarşik bir yapı sağlayan ve bunları filtrelemeyi ve aramayı kolaylaştıran günlük ad alanlarını ayarlamanıza olanak tanır. Ayrıca Debug, günlüklerini önceliklendirmek ve filtrelemek için kullanabileceğiniz hata, uyarı ve bilgi gibi çeşitli günlük kaydı seviyeleri sunar.

Debug'ı bu komutla proje dizininize bir bağımlılık olarak kurabilirsiniz:

npm yükleme hata ayıklaması

Bu kod, Debug'ın bir Express uygulamasında kullanımını gösterir:

sabit ifade = gerekmek('ifade etmek');

// Hata ayıklamayı içe aktar ve ad alanı oluştur
sabit hata ayıklama = gerekmek("hata ayıklama")('uygulamam: sunucu');

sabit uygulama = ekspres();
sabit bağlantı noktası = işlem.env. LİMAN || 3000;

uygulama.get('/', (gerekli, res) => {
hata ayıklama("/ için istek alındı");
res.gönder('Selam Dünya!');
});

app.listen (bağlantı noktası, () => {
hata ayıklama(`Sunucu bağlantı noktasını dinliyor ${bağlantı noktası}`);
});

Kod bir ad alanı oluşturur, uygulamam: sunucu. Bu ad alanı, " ile ilgili günlükleri ayırt edecektir.sunucu” modülünü, uygulamanızda farklı bir ad alanına sahip diğer modüllerle ilişkili olanlardan ayırır.

Hata ayıklamayı başlatmak için bu komutu çalıştırın:

DEBUG=uygulamam:* düğüm sunucusu.js

Yukarıdaki bu komut, ile başlayan bir ad alanına sahip herhangi bir günlük iletisiyle eşleşecektir. uygulamam:. Yalnızca işinizle ilgili günlükleri görmek istiyorsanız sunucu modülü ayarlayabilirsiniz HATA AYIKLAMA ortam değişkeni uygulamam: sunucu.

Debug'ın diğer bir avantajı da Winston gibi diğer loglama paketleriyle uyumlu olmasıdır.

Günlük Paketi Seçme

Bir kayıt paketi seçmek, hata ayıklama sürecinizin verimliliğini ve etkililiğini önemli ölçüde etkileyebilecek önemli bir karardır. Paketin özellikleri ve yetenekleri gibi faktörleri göz önünde bulundurmak önemlidir. programlama diliniz ve geliştirme ortamınızla uyumluluk ve kullanım kolaylığı ve yapılandırma.

Sonuç olarak, günlük kaydı paketinin seçimi, projenizin özel ihtiyaçlarına ve gereksinimlerine bağlı olacaktır.