Beleženje je lahko neprecenljivo orodje za odpravljanje težav in analizo uporabe aplikacije. Ti paketi pomagajo narediti preprost postopek.
Pravilno beleženje je ključni vidik gradnje in vzdrževanja delujočih spletnih aplikacij. Lahko vam pomaga slediti napakam, diagnosticirati težave z delovanjem in razumeti, kako uporabniki uporabljajo vašo aplikacijo.
Node.js ima veliko paketov za beleženje, ki vam pomagajo ustvariti in upravljati strukturirane dnevnike. Tukaj boste raziskali najboljše pakete beleženja, ki so trenutno na voljo v ekosistemu Node.js, in kako jih uporabljati.
1. Winston
Winston je knjižnica Node.js, ki zagotavlja prilagodljivo funkcijo beleženja, vključno z več prenosi. »Transport« je medij za shranjevanje vaših dnevnikov.
Winston podpira prenose konzole, datotek in omrežja. To pomeni, da lahko svoje dnevnike natisnete na konzolo, jih zapišete v datoteko ali pošljete po omrežju. Z uporabo Winstonovih ravni beleženja lahko ustvarite prenose po meri in filtrirate dnevnike glede na resnost.
Winston lahko namestite kot odvisnost v vašem projektnem imeniku z uporabo npm, upravitelj paketov JavaScript. Zaženite ta ukaz:
npm namestite winston
Spodnji blok kode prikazuje, kako nastaviti osnovni sistem beleženja z Winstonom. Dnevnike lahko definirate za različne lokacije in različne stopnje resnosti.
konst winston = zahtevati("winston");
// Winston logger
konst logger = winston.createLogger({
raven: 'info',
format: winston.format.json(),
defaultMeta: { storitev: 'moja-storitev' },
prevozi: [
novo winston.prevozi. Konzola(),
novo winston.prevozi. Mapa({ Ime datoteke: 'error.log', raven: 'napaka' }),
novo winston.prevozi. Mapa({ Ime datoteke: 'combined.log' })
]
});
logger.info('Pozdravljen, Winston!');
logger.warn('Opozorilo: Morda je nekaj narobe.');
logger.error('Pojavila se je napaka.');
Ta koda konfigurira zapisovalnik s tremi transporti. Prvi je transport konzole, ki izpiše sporočila dnevnika na konzolo. Drugi je prenos datotek, ki bo zapisoval dnevnike z nivojem "error" v datoteko "error.log". Tretji je prenos datotek, ki bo zapisal vse dnevnike v datoteko "combined.log".
Zapisovalnik je privzeto nastavljen za beleženje na ravni "info" in vključuje privzeti metapodatkovni objekt s poljem "service", nastavljenim na "my-service".
Koda nato zabeleži tri sporočila z uporabo zapisovalnika na ravni "info", "opozorilo" in "napaka". Ta sporočila bodo poslana v konzolo in ustrezne datoteke dnevnika glede na konfiguracijo transportov.
2. Morgan
Morgan je vmesna programska oprema za beleženje za Node.js, ki nudi osnovne zmožnosti beleženja zahtev. Zasnovan je tako, da je lahek in enostaven za uporabo. Morgan deluje tako, da prestreže zahteve HTTP in beleži ustrezne informacije, kot so metoda zahteve, URL, statusna koda itd.
Ena od ključnih prednosti Morgana je njegova preprostost. Dodate ga lahko v aplikacijo Node.js z nekaj vrsticami kode, saj za nastavitev ne potrebuje dodatne konfiguracije.
Morgan podpira več formatov beleženja, vključno z običajni, kombinirano, kratek, majhen, in razv formatov, kar vam omogoča, da izberete tistega, ki najbolj ustreza vašim potrebam.
Morgan lahko namestite kot odvisnost v vašem imeniku projekta tako, da zaženete ta ukaz:
npm namestite morgan
Ta koda prikazuje, kako uporabiti Morgan v Express aplikacijo:
konst izraziti = zahtevati("ekspresno");
konst morgan = zahtevati("morgan");
konst app = express();app.use (morgan("dev"));
app.get("/", (req, res) => {
res.send("Pozdravljen, svet!");
});
app.listen(3000, () => konzola.log(`Aplikacija se je začela`));
Koda inicializira Morgan z uporabo razv format. Ko naredite zahtevo GET za korensko pot (/), Morgan zabeleži podrobnosti te zahteve v konzolo.
Kljub svoji preprostosti je Morgan zmogljiv paket za beleženje, ki zagotavlja bistvene zmožnosti beleženja zahtev za aplikacije Node.js.
3. Pino
Pino je priljubljen in lahek paket beleženja za aplikacije Node.js, ki se ponaša s hitro zmogljivostjo in nizkimi stroški, kot je navedeno v njihova merila uspešnosti.
Pino podpira več vrst prevozov, ki jih je enostavno razširiti s transporti po meri. Ena izmed ključnih značilnosti Pina je njegova zmožnost beleženja sporočil v obliki JSON, zaradi česar jih je enostavno razčleniti in analizirati.
Uporaba Pino se razlikuje glede na ogrodje Node.js; Pino lahko namestite kot odvisnost v svoj imenik projekta Express tako, da zaženete spodnji ukaz:
npm namestite pino-http
Za različna ogrodja preverite Pino dokumentacija.
Ta blok kode prikazuje uporabo Pina v aplikaciji Express:
konst izraziti = zahtevati("ekspresno");
konst app = express();
konst pino = zahtevati('pino-http')()app.use (pino)
app.get("/", (req, res) => {
pino (req, res) // beleži zahtevo in odgovor
req.log.info('root route') // beleži dodatne informacije
res.send("Pozdravljen, svet!");
});
app.listen(3000, () => konzola.log(`Aplikacija se je začela`));
Ta koda inicializira Pino in ga registrira kot vmesno programsko opremo. Ko naredite zahtevo GET za korensko pot (/), Pino zabeleži podrobnosti vaše zahteve in njen odgovor na konzolo.
4. Odpravljanje napak
Debug je paket beleženja za Node.js, oblikovan po tehniki odpravljanja napak jedra Node.js. Zagotavlja lahkotno rešitev za beleženje, ki vam omogoča, da selektivno omogočite ali onemogočite beleženje brez spreminjanja kode, kar olajša odpravljanje napak in težav.
Odpravljanje napak vam omogoča tudi nastavitev imenskih prostorov dnevnikov, ki zagotavljajo hierarhično strukturo vašim dnevnikom na podlagi komponent in modulov v vaši aplikaciji, kar olajša njihovo filtriranje in iskanje. Poleg tega Debug ponuja različne ravni beleženja, kot so napake, opozorila in informacije, ki jih lahko uporabite za določanje prioritet in filtriranje njihovih dnevnikov.
Debug lahko namestite kot odvisnost v imeniku projekta s tem ukazom:
npm namestite odpravljanje napak
Ta koda prikazuje uporabo Debug-a v aplikaciji Express:
konst izraziti = zahtevati('express');
// Uvozi odpravljanje napak in ustvari imenski prostor
konst razhroščevanje = zahtevati('debug')('myapp: strežnik');konst app = express();
konst vrata = proces.env. PRISTANIŠČE || 3000;app.get('/', (req, res) => {
odpravljanje napak ('Prejeta zahteva za /');
res.send('Pozdravljen, svet!');
});
app.listen (vrata, () => {
odpravljanje napak (`Strežnik posluša vrata ${port}`);
});
Koda ustvari imenski prostor, myapp: strežnik. Ta imenski prostor bo razlikoval dnevnike, povezane z vašim "strežnik” od tistih, ki so povezani z drugimi moduli z drugačnim imenskim prostorom v vaši aplikaciji.
Zaženite ta ukaz, da zaženete odpravljanje napak:
DEBUG=myapp:* vozlišče server.js
Ta zgornji ukaz se bo ujemal s katerim koli dnevniškim sporočilom z imenskim prostorom, ki se začne z moja aplikacija:. Če želite videti samo dnevnike, povezane z vašim strežnik modul, lahko nastavite DEBUG spremenljivka okolja za myapp: strežnik.
Druga prednost Debuga je njegova združljivost z drugimi paketi za beleženje, kot je Winston.
Izbira paketa beleženja
Izbira paketa za beleženje je pomembna odločitev, ki lahko znatno vpliva na učinkovitost in uspešnost vašega postopka odpravljanja napak. Bistveno je upoštevati dejavnike, kot so značilnosti in zmogljivosti paketa, njegove združljivost z vašim programskim jezikom in razvojnim okoljem ter enostavnost uporabe in konfiguracijo.
Končno bo izbira paketa beleženja odvisna od posebnih potreb in zahtev vašega projekta.