Registravimas gali būti neįkainojamas įrankis trikčių šalinimui ir programų naudojimo analizei. Šie paketai padeda tai padaryti nesudėtingą procesą.
Tinkamas registravimas yra esminis funkcinių žiniatinklio programų kūrimo ir priežiūros aspektas. Tai gali padėti stebėti klaidas, diagnozuoti našumo problemas ir suprasti, kaip naudotojai sąveikauja su programa.
Node.js turi daug registravimo paketų, padedančių kurti ir valdyti struktūrinius žurnalus. Čia išnagrinėsite populiariausius registravimo paketus, šiuo metu pasiekiamus Node.js ekosistemoje, ir kaip juos naudoti.
1. Winstonas
Winston yra Node.js biblioteka, teikianti lanksčias registravimo funkcijas, įskaitant kelis transportavimus. „Transportas“ yra jūsų rąstų laikymo priemonė.
Winston palaiko konsolės, failų ir tinklo transportavimą. Tai reiškia, kad galite spausdinti savo žurnalus į konsolę, įrašyti juos į failą arba siųsti per tinklą. Naudodami „Winston“ registravimo lygius galite kurti pasirinktinius transportavimus ir filtruoti žurnalus pagal sunkumą.
„Winston“ galite įdiegti kaip priklausomybę savo projekto kataloge naudodami npm, „JavaScript“ paketų tvarkyklė. Vykdykite šią komandą:
npm įdiegti winston
Toliau pateiktame kodo bloke parodyta, kaip nustatyti pagrindinę registravimo sistemą naudojant Winston. Galite apibrėžti žurnalus skirtingoms vietoms ir įvairaus sunkumo laipsniams.
konst Winston = reikalauti("vinstonas");
// Winston medkirtys
konst logger = winston.createLogger({
lygis: 'informacija',
formatas: winston.format.json(),
defaultMeta: { paslauga: „mano paslauga“ },
pervežimai: [
naujas Winston.transportas. Konsolė(),
naujas Winston.transportas. Failas({ failo pavadinimas: „error.log“, lygiu: 'klaida' }),
naujas Winston.transportas. Failas({ failo pavadinimas: „combined.log“ })
]
});
logger.info(„Sveikas, Vinstonai!);
logger.warn("Įspėjimas: kažkas gali būti negerai.");
logger.error('Įvyko klaida.');
Šis kodas sukonfigūruoja registratorių su trimis transportavimu. Pirmasis yra konsolės transportavimas, kuris išves žurnalo pranešimus į konsolę. Antrasis yra failų transportavimas, kuris įrašys žurnalus su "klaidos" lygiu į "error.log" failą. Trečias yra failų pervežimas, kuris įrašys visus žurnalus į „combined.log“ failą.
Pagal numatytuosius nustatymus registratorius nustatytas registruotis „informacijos“ lygiu ir apima numatytąjį metaduomenų objektą, kurio laukas „service“ nustatytas į „mano paslauga“.
Tada kodas registruoja tris pranešimus, naudodamas registratorių, atitinkamai „informacijos“, „įspėjimo“ ir „klaidos“ lygiais. Šie pranešimai bus išvesti į konsolę ir atitinkamus žurnalo failus, atsižvelgiant į transportavimo konfigūraciją.
2. Morganas
Morgan yra tarpinė registravimo programinė įranga, skirta Node.js, teikianti pagrindines užklausų registravimo galimybes. Jis sukurtas taip, kad būtų lengvas ir patogus naudoti. „Morgan“ veikia perimdama HTTP užklausas ir registruodama atitinkamą informaciją, pvz., užklausos metodą, URL, būsenos kodą ir kt.
Vienas iš pagrindinių Morgan privalumų yra jo paprastumas. Galite pridėti jį prie Node.js programos naudodami kelias kodo eilutes, nes jai nustatyti nereikia papildomos konfigūracijos.
Morgan palaiko kelis registravimo formatus, įskaitant bendras, sujungti, trumpas, mažas, ir dev formatus, leidžiančius pasirinkti geriausiai jūsų poreikius atitinkantį.
Galite įdiegti „Morgan“ kaip priklausomybę savo projekto kataloge vykdydami šią komandą:
npm įdiegti morgan
Šis kodas parodo, kaip naudoti Morgan „Express“ programa:
konst išreikšti = reikalauti("išreikšti");
konst morgan = reikalauti("morganas");
konst programa = express ();app.use (morgan("dev"));
app.get("/", (req, res) => {
res.send("Labas pasauli!");
});
app.listen(3000, () => konsolė.log(„Programa pradėta“.));
Kodas inicijuoja Morganą naudodamas dev formatu. Kai pateikiate GET užklausą pagrindiniam maršrutui (/), „Morgan“ užregistruoja išsamią tos užklausos informaciją konsolėje.
Nepaisant savo paprastumo, „Morgan“ yra galingas registravimo paketas, suteikiantis esmines užklausų registravimo galimybes Node.js programoms.
3. Pino
„Pino“ yra populiarus ir lengvas registravimo paketas, skirtas Node.js programoms, pasižymintis greitu našumu ir mažomis papildomomis sąnaudomis, kaip nurodyta jų etalonus.
Pino palaiko kelis transportavimo tipus, lengvai išplečiamas naudojant pasirinktinius transportus. Viena iš pagrindinių Pino savybių yra galimybė registruoti JSON formato pranešimus, todėl juos lengva analizuoti ir analizuoti.
Pino naudojimas skiriasi priklausomai nuo Node.js sistemos; galite įdiegti Pino kaip priklausomybę savo Express projekto kataloge vykdydami toliau pateiktą komandą:
npm įdiegti pino-http
Skirtingoms sistemoms patikrinkite Pino dokumentacija.
Šis kodo blokas rodo Pino naudojimą Express programoje:
konst išreikšti = reikalauti("išreikšti");
konst programa = express ();
konst pino = reikalauti("pino-http")()app.use (pino)
app.get("/", (req, res) => {
pino (req, res) // registruoja užklausą ir atsakymą
req.log.info("pagrindinis kelias") // registruoja papildomą informaciją
res.send("Labas pasauli!");
});
app.listen(3000, () => konsolė.log(„Programa pradėta“.));
Šis kodas inicijuoja Pino ir užregistruoja jį kaip tarpinę programinę įrangą. Kai pateikiate GET užklausą pagrindiniam maršrutui (/), „Pino“ užregistruoja išsamią užklausos informaciją ir atsakymą į konsolę.
4. Derinimas
Debug yra Node.js registravimo paketas, sukurtas pagal Node.js branduolio derinimo techniką. Tai lengvas registravimo sprendimas, leidžiantis pasirinktinai įjungti arba išjungti registravimą nekeičiant kodo, todėl lengva derinti ir šalinti triktis.
Debug taip pat leidžia nustatyti žurnalų vardų sritis, kurios suteikia žurnalams hierarchinę struktūrą, pagrįstą programos komponentais ir moduliais, todėl juos lengviau filtruoti ir ieškoti. Be to, „Debug“ siūlo įvairius registravimo lygius, pvz., klaidų, įspėjimų ir informacijos, kuriuos galite naudoti norėdami nustatyti prioritetus ir filtruoti jų žurnalus.
Debug galite įdiegti kaip priklausomybę savo projekto kataloge naudodami šią komandą:
npm diegimo derinimas
Šis kodas rodo Debug naudojimą Express programoje:
konst išreikšti = reikalauti("išreikšti");
// Importuokite derinimą ir sukurkite vardų erdvę
konst derinti = reikalauti('derinti')('myapp: serveris');konst programa = express ();
konst prievadas = procesas.env. UOSTAS || 3000;app.get('/', (req, res) => {
debug („Gauta užklausa /“);
res.send('Labas pasauli!');
});
app.listen (port, () => {
debug (`Serveris klausosi prievade ${port}`);
});
Kodas sukuria vardų erdvę, myapp: serveris. Ši vardų sritis skirs žurnalus, susijusius su jūsųserveris” modulį iš tų, kurie yra susieti su kitais moduliais, turinčiais skirtingą vardų sritį jūsų programoje.
Paleiskite šią komandą, kad paleistumėte derinimą:
DEBUG=myapp:* mazgo serveris.js
Ši aukščiau esanti komanda atitiks bet kurį žurnalo pranešimą su vardų erdve, kuri prasideda myapp:. Jei norite matyti tik žurnalus, susijusius su jūsų serveris modulį, galite nustatyti DERINTI aplinkos kintamasis į myapp: serveris.
Kitas Debug pranašumas yra jo suderinamumas su kitais registravimo paketais, tokiais kaip Winston.
Miško ruošos paketo pasirinkimas
Registravimo paketo pasirinkimas yra svarbus sprendimas, galintis reikšmingai paveikti derinimo proceso efektyvumą ir efektyvumą. Būtina atsižvelgti į tokius veiksnius kaip paketo ypatybės ir galimybės, jo suderinamumas su jūsų programavimo kalba ir kūrimo aplinka bei jos naudojimo paprastumas ir konfigūracija.
Galiausiai, medienos ruošos paketo pasirinkimas priklausys nuo konkrečių jūsų projekto poreikių ir reikalavimų.