Logimine võib olla hindamatu tööriist probleemide tõrkeotsinguks ja rakenduste kasutamise analüüsimiseks. Need paketid aitavad muuta selle lihtsaks.

Õige logimine on funktsionaalsete veebirakenduste loomise ja hooldamise kriitiline aspekt. See võib aidata teil jälgida vigu, diagnoosida toimivusprobleeme ja mõista, kuidas kasutajad teie rakendusega suhtlevad.

Node.js-il on palju logimispakette, mis aitavad teil struktureeritud logisid luua ja hallata. Siin saate uurida Node.js ökosüsteemis praegu saadaolevaid populaarseimaid logipakette ja nende kasutamist.

1. Winston

Winston on Node.js teek, mis pakub paindlikku logimisfunktsiooni, sealhulgas mitut transporti. „Transport” on teie palkide salvestusmeedium.

Winston toetab konsooli-, faili- ja võrgutransporti. See tähendab, et saate logid konsooli printida, faili kirjutada või võrgu kaudu saata. Winstoni logitasemeid kasutades saate luua kohandatud transporte ja filtreerida logisid tõsiduse alusel.

Saate installida Winstoni oma projektikataloogi sõltuvusena, kasutades npm, JavaScripti paketihaldur. Käivitage see käsk:

instagram viewer
npm installi winston

Allolev koodiplokk näitab, kuidas seadistada Winstoni abil põhiline logimissüsteem. Saate määrata logisid erinevate asukohtade ja erineva raskusastmega.

konst winston = nõuda("winston");

// Winstoni metsaraie
konst logger = winston.createLogger({
tase: 'info',
vorming: winston.format.json(),
defaultMeta: { teenus: "minu teenus" },
transpordid: [
uus winston.transpordid. konsool (),
uus winston.transpordid. Fail({ faili nimi: 'error.log', tasemel: 'viga' }),
uus winston.transpordid. Fail({ faili nimi: 'combined.log' })
]
});

logger.info("Tere, Winston!");
logger.warn("Hoiatus: midagi võib olla valesti.");
logger.error('Ilmnes viga.');

See kood konfigureerib logija kolme transpordiga. Esimene on konsooli transport, mis väljastab konsooli logiteateid. Teine on failitransport, mis kirjutab "error.log"-faili logid tasemega "error". Kolmas on failitransport, mis kirjutab kõik logid "combined.log" faili.

Logija on vaikimisi seatud logima "teabe" tasemel ja sisaldab vaikimisi metaandmete objekti, mille välja "teenus" väärtuseks on seatud "minu teenus".

Seejärel logib kood logija abil kolm sõnumit vastavalt "teabe", "hoiatuse" ja "vea" tasemel. Need teated väljastatakse konsooli ja vastavatesse logifailidesse vastavalt transpordi konfiguratsioonile.

2. Morgan

Morgan on Node.js-i logimise vahevara, mis pakub põhilisi päringute logimise võimalusi. See on loodud olema kerge ja hõlpsasti kasutatav. Morgan püüab kinni HTTP-päringuid ja logib asjakohast teavet, nagu päringu meetod, URL, olekukood jne.

Üks Morgani peamisi eeliseid on selle lihtsus. Saate selle mõne koodireaga Node.js-rakendusele lisada, kuna selle seadistamine ei nõua täiendavat konfiguratsiooni.

Morgan toetab mitut logivormingut, sealhulgas levinud, kombineeritud, lühike, tillukeja dev vormingutes, mis võimaldab teil valida oma vajadustele kõige paremini sobiva.

Saate installida Morgani oma projektikataloogi sõltuvusena, käivitades selle käsu:

npm installi morgan

See kood näitab, kuidas Morganit kasutada Expressi rakendus:

konst väljendada = nõuda("väljendama");
konst morgan = nõuda("morgan");
konst rakendus = express();

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

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

app.listen(3000, () => konsool.log("Rakendus käivitati".));

Kood initsialiseerib Morgani, kasutades dev vormingus. Kui teete juurmarsruudile (/) GET-päringu, logib Morgan selle päringu üksikasjad konsooli.

Vaatamata oma lihtsusele on Morgan võimas logipakett, mis pakub Node.js rakenduste jaoks olulisi päringute logimise võimalusi.

3. Pino

Pino on Node.js-i rakenduste jaoks populaarne ja kerge logimispakett, millel on kiire jõudlus ja madal üldkulu, nagu on öeldud nende võrdlusalused.

Pino toetab mitut transporditüüpi, mida on lihtne kohandatud transpordiga laiendada. Üks Pino põhifunktsioone on selle võime logida JSON-vormingus sõnumeid, mis muudab nende sõelumise ja analüüsimise lihtsaks.

Pino kasutamine oleneb Node.js raamistikust; Pino saate installida oma Expressi projekti kataloogi sõltuvusena, käivitades alloleva käsu:

npm installi pino-http

Erinevate raamistike jaoks kontrollige Pino dokumentatsioon.

See koodiplokk näitab Pino kasutamist Expressi rakenduses:

konst väljendada = nõuda("väljendama");
konst rakendus = express();
konst pino = nõuda('pino-http')()

app.use (pino)

app.get("/", (req, res) => {
pino (req, res) // logib päringu ja vastuse
req.log.info('juurtee') // logib lisateavet
res.send("Tere, Maailm!");
});

app.listen(3000, () => konsool.log("Rakendus käivitati".));

See kood initsialiseerib Pino ja registreerib selle vahevarana. Kui teete juurmarsruudile (/) GET-päringu, logib Pino teie päringu üksikasjad ja vastuse konsoolile.

4. Silumine

Silumine on Node.js-i logimispakett, mis on modelleeritud Node.js-i tuuma silumistehnika järgi. See pakub kerget logimislahendust, mis võimaldab logimist valikuliselt lubada või keelata ilma koodi muutmata, muutes silumise ja probleemide tõrkeotsingu lihtsaks.

Silumine võimaldab teil määrata ka logi nimeruume, mis pakuvad teie logidele hierarhilist struktuuri, mis põhineb teie rakenduse komponentidel ja moodulitel, muutes nende filtreerimise ja otsimise lihtsamaks. Lisaks pakub Debug erinevaid logimistasemeid, nagu vead, hoiatused ja teave, mida saate kasutada logide prioriseerimiseks ja filtreerimiseks.

Saate installida Debugi oma projekti kataloogi sõltuvusena järgmise käsuga:

npm installi silumine

See kood näitab silumise kasutamist Expressi rakenduses:

konst väljendada = nõuda('väljendama');

// Impordi silumine ja loo nimeruum
konst silumine = nõuda('silumine')('myapp: server');

konst rakendus = express();
konst port = protsess.env. PORT || 3000;

app.get('/', (req, res) => {
silumine('Saadud taotlus /');
res.send('Tere, Maailm!');
});

app.listen (port, () => {
silumine(`Server kuulab pordis ${port}`);
});

Kood loob nimeruumi, myapp: server. See nimeruum eristab logisid, mis on seotud teie "server” moodulist moodulitest, mis on seotud teie rakenduse teiste erineva nimeruumiga moodulitega.

Silumise käivitamiseks käivitage see käsk:

DEBUG=myapp:* node server.js

See ülaltoodud käsk sobitab iga logiteate nimeruumiga, mis algab tähega myapp:. Kui soovite näha ainult teiega seotud logisid server moodulit, saate määrata SILU keskkonna muutuja myapp: server.

Veel üks Debugi eelis on selle ühilduvus teiste logimispakettidega, näiteks Winstoniga.

Logimispaketi valimine

Logimispaketi valimine on oluline otsus, mis võib oluliselt mõjutada teie silumisprotsessi tõhusust ja tulemuslikkust. Oluline on arvestada selliste teguritega nagu paketi omadused ja võimalused, selle ühilduvus teie programmeerimiskeele ja arenduskeskkonnaga ning selle kasutusmugavus ja konfiguratsiooni.

Lõppkokkuvõttes sõltub metsaraiepaketi valik teie projekti konkreetsetest vajadustest ja nõuetest.