Sådan implementeres logning i Node.js

Sadan Implementeres Logning I Node Js



Logning ” i node.js spiller en afgørende rolle i at vedligeholde hele livscyklussen af ​​hjemmesideudviklingsproceduren. Det er sådan, at logning er den mest almindelige funktionalitet, der udføres af udviklerne for at analysere kodefunktionaliteterne fra tid til anden for at analysere dataene og kode og løse fejlene baseret på kodeanalysen.

Denne skrivning forklarer indholdet nedenfor:

Hvornår skal man logge på node.js?

Følgende er de almindelige logningsniveauer i node.js:







  • Info: De opgaver eller output, der bekræfter den strømlinede kodeudførelse.
  • Advare: De begivenheder, der skal overvejes for at undgå fejlene.
  • Fejl: De hændelser, der resulterer i fejl i kodeudførelsen.
  • Fejlfinde: Dette niveau bruges for det meste af udviklerne.

Hvor udføres logningen?

Loghændelser kan sættes i kø, og flere lyttere kan lytte til køen og skrive til den log, der kræves. Før man afslutter, hvor man skal logge, bør det være kendt, at målmetoden kan klare flere logmeddelelser. Følgende er nogle af de almindelige logplaceringer:



  • stdout
  • stderr
  • konsol

Det er sådan, at det grundlæggende ' console.log() ' og ' console.info() ' metoder log til ' stdout ”. Imidlertid ' console.warn() ' og ' console.error() ' metoder log til ' stderr ”. Disse metoder viser outputtet på konsollen. I frontenden vil dette være programmørens værktøjskonsol.



Hvordan implementerer man logning i Node.js?

At analysere behovet for logning i forskellige situationer er afgørende for at implementere den tilsvarende logningstilgang. Logningen på node.js kan implementeres via nedenstående fremgangsmåder:





  • console.log() ' Metode.
  • console.warn() ' Metode.
  • console.error() ' Metode.
  • console.table() ' Metode.
  • Debug modul.
  • Winston-pakke.

Fremgangsmåde 1: Implementer login på node.js ved hjælp af metoden 'console.log()'.

Det ' console.log() ”-metoden viser output på konsollen og er nyttig til at teste kodefunktionaliteterne fra tid til anden.

Syntaks



konsol. log ( rod )

I denne syntaks, ' rod ” refererer til den besked, der skal skrives til konsollen.

Fortsæt nu til den nedenfor angivne kodeblok, der logger de medfølgende beskeder på konsollen:

konsol. log ( 'Dette er Linuxhint!' ) ;

konsol. log ( 'Dette er Node js!' ) ;

Produktion

Ud fra dette resultat kan det antydes, at de angivne meddelelser vises på konsollen korrekt.

Fremgangsmåde 2: Implementer log på node.js ved hjælp af 'console.warn()'-metoden

Det ' console.warn() ”-metoden viser en advarselsmeddelelse til konsollen.

Syntaks

konsol. advare ( rod )

I den givne syntaks, ' rod ” angiver meddelelsen (også brugerdefineret), der skal vises på konsollen.

Gå nu til følgende kodelinje, der viser en brugerdefineret advarselsmeddelelse ved hjælp af ' console.warn() ” metode:

konsol. advare ( 'Dette er en advarsel!' ) ;

Produktion

Som det ses, vises den specificerede brugerdefinerede advarsel korrekt.

Fremgangsmåde 3: Implementer log på node.js ved hjælp af metoden 'console.error()'.

Denne metode skriver en fejlmeddelelse til konsollen.

Syntaks

konsol. fejl ( [ data ] [ , ... argumenter ] )

I denne syntaks:

  • data ” refererer til den primære meddelelse.
  • argumenter ” repræsenterer værdierne.

Returværdi

Denne metode henter en fejlmeddelelse.

Oversigt over følgende kodestykke, der logger en fejlmeddelelse ved den utilfredse tilstand:

x = 150 ;
hvis ( x < 100 ) {
konsol. log ( 'Klar' ) ;
}
andet {
konsol. fejl ( 'Upassende nummer' ) ;
}

Ifølge denne kode:

  • Initialiser et heltal, der skal analyseres for betingelserne.
  • Anvend derefter ' hvis ” sætning sådan, at hvis det initialiserede heltal er mindre end “100”, vises den angivne meddelelse.
  • Ellers vil ' andet '-sætning udfører fejlmeddelelsen i ' console.error() ” metode.

Produktion

Dette output bekræfter, at den brugerdefinerede fejlmeddelelse vises på konsollen i overensstemmelse hermed, hvis tilstanden ikke er opfyldt.

Fremgangsmåde 4: Implementer log på node.js ved hjælp af metoden 'console.table()'.

Denne metode opretter og viser en tabel på konsollen.

Syntaks

konsol. bord ( td, tc )

Her, ' td ' repræsenterer tabeldataene, og ' tc ” refererer til rækken af ​​tabelkolonner.

Gå nu gennem nedenstående kodesætning, der opretter en tabel ved at tildele et separat indeks til de tildelte værdier af videodatatyper to gange:

konsol. bord ( [ { x : 10 , a : 'Harry' } , { x : femten , a : 'Med' } ] ) ;

Produktion

Fremgangsmåde 5: Implementer log ind node.js ved hjælp af 'Debug Module'

Dette modul kan bruges til at logge ekstra information om status for web-middleware, dvs. Express, Koa, osv., når back-enden modtager en internetanmodning. Middleware sættes ind i anmodningspipelinen.

Følgende er fremgangsmåderne til at konfigurere lognings-middlewaren:

Eksempel 1: Opsætning af log-middleware fra applikation

Det ' app.use() ”-funktionen monterer mål-middleware-funktionen på den angivne sti.

Syntaks

app. brug ( pt, cb )

I ovenstående syntaks:

  • pt ” refererer til den sti, som middleware-funktionen skal aktiveres for.
  • cb ” svarer til middleware-funktion(erne).

Følgende er kodedemonstrationen, der opsætter lognings-middlewaren via en applikation og den diskuterede metode:

konst app = udtrykke ( )

konst logMiddleware = kræve ( 'my-logging-middleware' )

app. brug ( logMiddleware )

I denne kode skal du oprette en Express-applikation og inkludere ' my-logging-middleware ” for at begynde at arbejde med lognings-middlewaren. Til sidst skal du anvende ' app.use() ”-funktion til at montere mål-middleware-funktionen på den angivne sti.

Eksempel 2: Opsætning af log-middleware fra applikation via router

Det ' router.use() ”-funktionen monterer middleware for de ruter, der serveres via målrouteren.

Syntaks

router. brug ( for, func )

I denne syntaks:

  • pt ” refererer til middleware-stien.
  • func ” svarer til den funktion, der blev sendt som tilbagekald.

Eksemplet nedenfor opsætter lognings-middlewaren ved hjælp af routerobjektet og ' router.use() ' funktion:

konst router = udtrykke. Router ( )

konst rtLoggingMiddleware = kræve ( 'min-rute-logning-middleware' )

router. brug ( rtLoggingMiddleware )

I denne kode:

  • Det ' express.Router() ”-funktionen opretter et nyt routerobjekt.
  • Herefter skal du inkludere ' my-route-logging-middleware ' og ligeledes bruge ' router.use() ”-funktion til at montere middleware til de ruter, der betjenes af målrouteren.

Fremgangsmåde 6: Implementer log ind node.js ved hjælp af 'Winston-pakken'

Denne særlige pakke omfatter lagermuligheder, flere logniveauer, forespørgsler og en profiler. Følgende er kodedemonstrationen, der implementerer logning via denne tilgang:

konst x = udtrykke ( )
konst omfatte = kræve ( 'winston' )
konst konsol Transport = ny omfatte. transporter . Konsol ( )
konst vælger = {
transporter : [ konsol Transport ]
}
konst logger = ny omfatte. skabeLogger ( vælger )
funktion displayRequest ( kræve, res, næste ) {
logger. info ( req. url )
Næste ( )
}
x. brug ( displayRequest )
funktion displayFejl ( fejl, kræve, res, næste ) {
logger. fejl ( fejl )
Næste ( )
}
x. brug ( displayError )

I denne kode:

  • Flere transporter kan sættes op med filtrering, og brugerdefinerede formatere kan indstilles.
  • Desuden er flere logger-forekomster angivet i forskellige funktioner, dvs. logger.info() ' og ' logger.error() ”.
  • Disse loggere viser henholdsvis information og fejlmeddelelser.
  • I denne kode logges kun den anmodede URL.

Nedenstående givne parametre er taget af loggerne:

Navn Standard Beskrivelse
format Winston.format.json Formaterer infomeddelelserne
stille Falsk Hvis det er sandt, suspenderes alle logfiler.
exitOnError Rigtigt Hvis falsk, forårsager de håndterede undtagelser ikke process.exit
niveauer Winston.config.npm.levels Niveauerne refererer til logprioriteterne.

Konklusion

Logningen på node.js kan implementeres via ' console.log() 'metoden, ' console.warn() 'metoden, ' console.error() 'metoden, ' console.table() 'metoden, ' Debug modul ', eller via ' Winston-pakke ”. Konsolmetoderne viser oplysningerne og fejlmeddelelserne. Fejlretningsmodulet logger ekstra information om status for web-middlewaren, og Winston-pakken indeholder lagringsmulighederne og forskellige logniveauer.