Înregistrarea poate fi un instrument neprețuit pentru depanarea problemelor și analiza utilizării aplicației. Aceste pachete ajută la realizarea unui proces simplu.

Înregistrarea corectă este un aspect critic al construirii și menținerii aplicațiilor web funcționale. Vă poate ajuta să urmăriți erorile, să diagnosticați problemele de performanță și să înțelegeți cum interacționează utilizatorii cu aplicația dvs.

Node.js are multe pachete de înregistrare pentru a vă ajuta să creați și să gestionați jurnalele structurate. Aici veți explora cele mai bune pachete de înregistrare disponibile în prezent în ecosistemul Node.js și cum să le utilizați.

1. Winston

Winston este o bibliotecă Node.js care oferă funcționalitate flexibilă de înregistrare, inclusiv transporturi multiple. Un „transport” este un mediu de stocare pentru jurnalele dvs.

Winston acceptă transporturi de consolă, fișiere și rețea. Aceasta înseamnă că vă puteți imprima jurnalele pe consolă, le puteți scrie într-un fișier sau le puteți trimite printr-o rețea. Folosind nivelurile de înregistrare ale lui Winston, puteți crea transporturi personalizate și puteți filtra jurnalele în funcție de gravitate.

instagram viewer

Puteți instala Winston ca dependență în directorul de proiect folosind npm, managerul de pachete JavaScript. Rulați această comandă:

npm instalează winston

Blocul de cod de mai jos demonstrează cum să configurați un sistem de înregistrare de bază folosind Winston. Puteți defini jurnalele pentru diferite locații și diferite niveluri de severitate.

const winston = cere("winston");

// Winston logger
const logger = winston.createLogger({
nivel: 'informatii',
format: winston.format.json(),
defaultMeta: { serviciu: "serviciul meu" },
transporturi: [
nou winston.transporturi. Consolă(),
nou winston.transporturi. Fişier({ nume de fișier: „error.log”, nivel: 'eroare' }),
nou winston.transporturi. Fişier({ nume de fișier: „combined.log” })
]
});

logger.info(— Bună, Winston!);
logger.warn(„Avertisment: Este posibil ca ceva să fie în neregulă”.);
logger.error('A aparut o eroare.');

Acest cod configurează un logger cu trei transporturi. Primul este un transport de consolă, care va scoate mesaje de jurnal către consolă. Al doilea este un transport de fișiere care va scrie jurnalele cu un nivel de „eroare” într-un fișier „error.log”. Al treilea este un transport de fișiere care va scrie toate jurnalele într-un fișier „combined.log”.

Loggerul este setat să se înregistreze la nivelul „informații” în mod implicit și include un obiect de metadate implicit cu un câmp „serviciu” setat la „serviciul meu”.

Codul înregistrează apoi trei mesaje folosind loggerul la nivelurile „informații”, „avertizare” și, respectiv, „eroare”. Aceste mesaje vor fi trimise în consolă și în fișierele jurnal corespunzătoare, în funcție de configurația transporturilor.

2. Morgan

Morgan este un middleware de înregistrare pentru Node.js care oferă capabilități de bază de înregistrare a cererilor. Este conceput pentru a fi ușor și ușor de utilizat. Morgan funcționează prin interceptarea solicitărilor HTTP și înregistrând informații relevante, cum ar fi metoda de solicitare, adresa URL, codul de stare etc.

Unul dintre avantajele cheie ale Morgan este simplitatea sa. Îl puteți adăuga la o aplicație Node.js cu câteva linii de cod, deoarece nu necesită o configurare suplimentară pentru a fi configurat.

Morgan acceptă mai multe formate de înregistrare, inclusiv uzual, combinate, mic de statura, minuscul, și dev formate, permițându-vă să alegeți unul care se potrivește cel mai bine nevoilor dvs.

Puteți instala Morgan ca dependență în directorul de proiect rulând această comandă:

npm instalează morgan

Acest cod arată cum să utilizați Morgan în o aplicație Express:

const expres = cere("expres");
const morgan = cere("morgan");
const aplicație = expres();

app.use (morgan("dev"));

app.get("/", (req, res) => {
res.send("Salut Lume!");
});

app.listen(3000, () => consolă.Buturuga(`Aplicația a început`));

Codul inițializează Morgan folosind dev format. Când faceți o solicitare GET către ruta rădăcină (/), Morgan înregistrează detaliile cererii respective în consolă.

În ciuda simplității sale, Morgan este un pachet de jurnal puternic care oferă capabilități esențiale de înregistrare a cererilor pentru aplicațiile Node.js.

3. Pino

Pino este un pachet de înregistrare popular și ușor pentru aplicațiile Node.js, care se mândrește cu performanță rapidă și supraîncărcare redusă, așa cum se precizează în reperele lor.

Pino acceptă mai multe tipuri de transport, ușor de extins cu transporturi personalizate. Una dintre caracteristicile cheie ale lui Pino este capacitatea sa de a înregistra mesaje în format JSON, ceea ce le face ușor de analizat și analizat.

Utilizarea lui Pino variază în funcție de cadrul Node.js; puteți instala Pino ca dependență în directorul de proiect Express rulând comanda de mai jos:

npm instalează pino-http

Pentru diferite cadre, verificați Documentație Pino.

Acest bloc de cod arată utilizarea lui Pino într-o aplicație Express:

const expres = cere("expres");
const aplicație = expres();
const pino = cere("pino-http")()

app.use (pino)

app.get("/", (req, res) => {
pino (req, res) // înregistrează cererea și răspunsul
req.log.info(„ruta rădăcină”) // înregistrează informații suplimentare
res.send("Salut Lume!");
});

app.listen(3000, () => consolă.Buturuga(`Aplicația a început`));

Acest cod inițializează Pino și îl înregistrează ca middleware. Când faceți o solicitare GET către ruta rădăcină (/), Pino înregistrează detaliile solicitării dvs. și răspunsul acesteia la consolă.

4. Depanați

Debug este un pachet de jurnalizare pentru Node.js modelat după tehnica de depanare a nucleului Node.js. Oferă o soluție ușoară de înregistrare în jurnal care vă permite să activați sau să dezactivați înregistrarea selectivă fără a modifica codul, facilitând depanarea și depanarea problemelor.

Debug vă permite, de asemenea, să setați spații de nume de jurnal, care oferă o structură ierarhică a jurnalelor dvs. bazată pe componentele și modulele din aplicația dvs., ușurând filtrarea și căutarea acestora. În plus, Debug oferă diferite niveluri de înregistrare, cum ar fi eroare, avertizare și informații, pe care le puteți utiliza pentru a prioritiza și a filtra jurnalele.

Puteți instala Debug ca dependență în directorul de proiect cu această comandă:

npm install debug

Acest cod arată utilizarea Debug într-o aplicație Express:

const expres = cere('expres');

// Importă depanarea și creează spațiu de nume
const depanare = cere("depanare")(„myapp: server”);

const aplicație = expres();
const port = process.env. PORT || 3000;

app.get('/', (req, res) => {
depana(„Solicitare primită pentru /”);
res.send('Salut Lume!');
});

app.listen (port, () => {
depana(`Serverul ascultă pe port ${port}`);
});

Codul creează un spațiu de nume, myapp: server. Acest spațiu de nume va distinge jurnalele legate de „Server” din cele asociate cu alte module cu un spațiu de nume diferit în aplicația dumneavoastră.

Rulați această comandă pentru a porni depanarea:

DEBUG=myapp:* nod server.js

Această comandă de mai sus va potrivi orice mesaj de jurnal cu un spațiu de nume care începe cu myapp:. Dacă doriți doar să vedeți jurnalele legate de dvs Server modul, puteți seta DEBUG variabila de mediu la myapp: server.

Un alt avantaj al Debug este compatibilitatea cu alte pachete de logare, cum ar fi Winston.

Alegerea unui pachet de înregistrare

Alegerea unui pachet de logare este o decizie importantă care poate avea un impact semnificativ asupra eficienței și eficacității procesului dvs. de depanare. Este esențial să luați în considerare factori precum caracteristicile și capacitățile pachetului, acesta compatibilitatea cu limbajul dumneavoastră de programare și mediul de dezvoltare și ușurința sa de utilizare și configurație.

În cele din urmă, alegerea pachetului de înregistrare va depinde de nevoile și cerințele specifice ale proiectului dumneavoastră.