Kirjaaminen voi olla korvaamaton työkalu ongelmien vianmäärityksessä ja sovellusten käytön analysoinnissa. Nämä paketit auttavat tekemään siitä suoraviivaisen prosessin.

Oikea kirjaus on kriittinen osa toimivien verkkosovellusten rakentamista ja ylläpitoa. Sen avulla voit seurata virheitä, diagnosoida suorituskykyongelmia ja ymmärtää, miten käyttäjät ovat vuorovaikutuksessa sovelluksesi kanssa.

Node.js: ssa on monia lokipaketteja, jotka auttavat sinua luomaan ja hallitsemaan jäsenneltyjä lokeja. Täällä tutustut parhaimpiin Node.js-ekosysteemissä tällä hetkellä saatavilla oleviin lokipaketteihin ja niiden käyttöön.

1. Winston

Winston on Node.js-kirjasto, joka tarjoaa joustavia lokitoimintoja, mukaan lukien useita siirtoja. "Kuljetus" on tukien tallennusväline.

Winston tukee konsoli-, tiedosto- ja verkkosiirtoa. Tämä tarkoittaa, että voit tulostaa lokit konsoliin, kirjoittaa ne tiedostoon tai lähettää ne verkon kautta. Winstonin lokitason avulla voit luoda mukautettuja siirtoja ja suodattaa lokeja vakavuuden perusteella.

Voit asentaa Winstonin riippuvuutena projektihakemistoosi käyttämällä npm, JavaScript-pakettien hallinta. Suorita tämä komento:

npm asenna winston

Alla oleva koodilohko näyttää, kuinka peruskirjausjärjestelmä määritetään Winstonin avulla. Voit määrittää lokeja eri sijainneille ja eri vakavuusasteille.

konst winston = vaatia("winston");

// Winston logger
konst logger = winston.createLogger({
taso: 'tiedot',
muoto: winston.format.json(),
oletusMeta: { palvelua: "palvelukseni" },
kuljetukset: [
Uusi winston.transports. Konsoli(),
Uusi winston.transports. Tiedosto({ Tiedoston nimi: 'error.log', taso: 'virhe' }),
Uusi winston.transports. Tiedosto({ Tiedoston nimi: 'combined.log' })
]
});

logger.info("Hei, Winston!");
logger.warn('Varoitus: Jokin voi olla vialla.');
logger.error('Tapahtui virhe.');

Tämä koodi määrittää loggerin kolmella siirrolla. Ensimmäinen on konsolin siirto, joka tulostaa lokiviestejä konsoliin. Toinen on tiedostonsiirto, joka kirjoittaa "error"-tason lokit "error.log"-tiedostoon. Kolmas on tiedostonsiirto, joka kirjoittaa kaikki lokit "combined.log"-tiedostoon.

Loggeri on asetettu kirjautumaan oletusarvoisesti "info"-tasolle, ja se sisältää oletusarvoisen metatieto-objektin, jonka "palvelu"-kenttään on asetettu "oma palvelu".

Koodi kirjaa sitten lokiin kolme viestiä loggerin avulla "info", "warn" ja "error" tasoilla, vastaavasti. Nämä viestit tulostetaan konsoliin ja asianmukaisiin lokitiedostoihin siirtojen kokoonpanon mukaan.

2. Morgan

Morgan on Node.js: n kirjausväliohjelmisto, joka tarjoaa peruspyyntöjen kirjaamisominaisuudet. Se on suunniteltu kevyeksi ja helppokäyttöiseksi. Morgan toimii sieppaamalla HTTP-pyyntöjä ja kirjaamalla asiaankuuluvia tietoja, kuten pyyntömenetelmän, URL-osoitteen, tilakoodin jne.

Yksi Morganin tärkeimmistä eduista on sen yksinkertaisuus. Voit lisätä sen Node.js-sovellukseen muutamalla koodirivillä, koska se ei vaadi lisämäärityksiä.

Morgan tukee useita lokimuotoja, mukaan lukien yleinen, yhdistetty, lyhyt, pikkuruinen, ja kehittäjä muotoja, jolloin voit valita tarpeisiisi parhaiten sopivan.

Voit asentaa Morganin riippuvuutena projektihakemistoosi suorittamalla tämän komennon:

npm asenna morgan

Tämä koodi näyttää kuinka Morgania käytetään Express-sovellus:

konst express = vaatia("ilmaista");
konst morgan = vaatia("morgan");
konst sovellus = express();

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

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

app.listen(3000, () => konsoli.Hirsi("Sovellus aloitettu".));

Koodi alustaa Morganin käyttämällä kehittäjä muoto. Kun teet GET-pyynnön juurireitille (/), Morgan kirjaa pyynnön tiedot konsoliin.

Yksinkertaisuudestaan ​​huolimatta Morgan on tehokas lokipaketti, joka tarjoaa olennaiset pyyntöjen kirjausominaisuudet Node.js-sovelluksille.

3. Pino

Pino on suosittu ja kevyt lokipaketti Node.js-sovelluksille, joka tarjoaa nopean suorituskyvyn ja alhaiset yleiskustannukset, kuten artikkelissa todetaan. niiden vertailuarvot.

Pino tukee useita kuljetustyyppejä, joita voidaan helposti laajentaa mukautetuilla kuljetuksilla. Yksi Pinon tärkeimmistä ominaisuuksista on sen kyky kirjata JSON-muotoisia viestejä, mikä tekee niistä helppo jäsentää ja analysoida.

Pinon käyttö vaihtelee Node.js-kehyksen mukaan; voit asentaa Pinon riippuvuutena Express-projektihakemistoosi suorittamalla alla olevan komennon:

npm asenna pino-http

Tarkista eri puitteet Pinon dokumentaatio.

Tämä koodilohko näyttää Pinon käytön Express-sovelluksessa:

konst express = vaatia("ilmaista");
konst sovellus = express();
konst pino = vaatia('pino-http')()

app.use (pino)

app.get("/", (req, res) => {
pino (req, res) // kirjaa pyynnön ja vastauksen
req.log.info('juurireitti') // kirjaa lisätiedot
res.send("Hei maailma!");
});

app.listen(3000, () => konsoli.Hirsi("Sovellus aloitettu".));

Tämä koodi alustaa Pinon ja rekisteröi sen väliohjelmistoksi. Kun teet GET-pyynnön juurireitille (/), Pino kirjaa pyyntösi tiedot ja vastauksen konsoliin.

4. Debug

Debug on Node.js: n lokipaketti, joka on mallinnettu Node.js-ytimen virheenkorjaustekniikan mukaan. Se tarjoaa kevyen lokiratkaisun, jonka avulla voit ottaa kirjauksen käyttöön tai poistaa sen käytöstä valikoivasti koodia muuttamatta, mikä tekee virheenkorjauksesta ja ongelmien vianmäärityksestä helppoa.

Debugissa voit myös asettaa lokien nimiavaruuksia, jotka tarjoavat lokeillesi hierarkkisen rakenteen sovelluksesi komponenttien ja moduulien perusteella, mikä helpottaa niiden suodattamista ja hakua. Lisäksi Debug tarjoaa erilaisia ​​kirjaustasoja, kuten virhe-, varoitus- ja tiedot, joiden avulla voit priorisoida ja suodattaa lokeja.

Voit asentaa Debugin riippuvuutena projektisi hakemistoon tällä komennolla:

npm asennusvirheenkorjaus

Tämä koodi näyttää Debugin käytön Express-sovelluksessa:

konst express = vaatia('ilmaista');

// Tuo debug ja luo nimiavaruus
konst debug = vaatia('debug')("myapp: palvelin");

konst sovellus = express();
konst portti = process.env. SATAMA || 3000;

app.get('/', (req, res) => {
debug("Vastaanotettu pyyntö /");
res.send('Hei maailma!');
});

app.listen (portti, () => {
debug(`Palvelin kuuntelee portissa ${port}`);
});

Koodi luo nimitilan, myapp: palvelin. Tämä nimiavaruus erottaa lokit, jotka liittyvät "palvelin”-moduulista niistä, jotka liittyvät sovelluksesi muihin moduuleihin, joilla on eri nimiavaruus.

Suorita tämä komento käynnistääksesi virheenkorjauksen:

DEBUG=myapp:* solmupalvelin.js

Tämä yllä oleva komento yhdistää kaikki lokiviestit, joiden nimiavaruus alkaa myapp:. Jos haluat nähdä vain lokit, jotka liittyvät omaan palvelin moduuli, voit asettaa DEBUG ympäristömuuttuja myapp: palvelin.

Toinen Debugin etu on sen yhteensopivuus muiden lokipakettien, kuten Winstonin, kanssa.

Kirjauspaketin valinta

Lokipaketin valitseminen on tärkeä päätös, joka voi vaikuttaa merkittävästi virheenkorjausprosessin tehokkuuteen ja tehokkuuteen. On tärkeää ottaa huomioon sellaiset tekijät kuin paketin ominaisuudet ja ominaisuudet, sen yhteensopivuus ohjelmointikielesi ja kehitysympäristösi kanssa sekä sen helppokäyttöisyys ja kokoonpano.

Lopulta hakkuupaketin valinta riippuu projektisi erityistarpeista ja vaatimuksista.