Hvordan implementere logging i Node.js

Hvordan Implementere Logging I Node Js



' Hogst ” i node.js spiller en viktig rolle i å opprettholde hele livssyklusen til nettsideutviklingsprosedyren. Det er slik at logging er den vanligste funksjonaliteten som utføres av utviklerne for å analysere kodefunksjonaliteten fra tid til annen for å analysere dataene, og kode og løse feilene basert på kodeanalysen.

Denne artikkelen forklarer innholdet nedenfor:

Når logge på node.js?

Følgende er de vanlige loggingsnivåene i node.js:







  • Info: Oppgavene eller utgangene som bekrefter den strømlinjeformede kodekjøringen.
  • Varsle: Hendelsene som må vurderes for å unngå feilene.
  • Feil: Hendelsene som resulterer i feil i kjøringen av kode.
  • Feilsøking: Dette nivået brukes for det meste av utviklerne.

Hvor blir loggingen utført?

Logghendelser kan settes i kø, og flere lyttere kan lytte til køen og skrive til den loggen som kreves. Før du avslutter hvor du skal logge, bør det være kjent at målmetodikken kan takle flere loggmeldinger. Følgende er noen av de vanlige loggplasseringene:



  • stdout
  • stderr
  • konsoll

Det er slik at den grunnleggende ' console.log() ' og ' console.info() ' metoder logger til ' stdout '. Imidlertid ' console.warn() ' og ' console.error() ' metoder logger til ' stderr '. Disse metodene viser utdataene på konsollen. I frontend vil dette være programmererens verktøykonsoll.



Hvordan implementere logging i Node.js?

Å analysere behovet for logging i ulike situasjoner er avgjørende for å implementere den tilsvarende loggingsmetoden. Innloggingen node.js kan implementeres via de nedenfor angitte tilnærmingene:





  • ' console.log() ' Metode.
  • ' console.warn() ' Metode.
  • ' console.error() ' Metode.
  • ' console.table() ' Metode.
  • Feilsøkingsmodul.
  • Winston-pakken.

Tilnærming 1: Implementer pålogging node.js ved å bruke 'console.log()'-metoden

« console.log() ”-metoden viser utdataene på konsollen og er nyttig for å teste kodefunksjonene fra tid til annen.

Syntaks



konsoll. Logg ( rot )

I denne syntaksen ' rot ” refererer til meldingen som skal skrives til konsollen.

Fortsett nå til den nedenfor gitte kodeblokken som logger de oppgitte meldingene på konsollen:

konsoll. Logg ( 'Dette er Linuxhint!' ) ;

konsoll. Logg ( 'Dette er Node js!' ) ;

Produksjon

Fra dette resultatet kan det antydes at de angitte meldingene vises på konsollen på riktig måte.

Tilnærming 2: Implementer pålogging node.js ved å bruke 'console.warn()'-metoden

« console.warn() ”-metoden viser en advarsel til konsollen.

Syntaks

konsoll. varsle ( rot )

I den gitte syntaksen, ' rot ” indikerer meldingen (også tilpasset) som skal vises på konsollen.

Gå nå til følgende kodelinje som viser en tilpasset advarselsmelding ved hjelp av ' console.warn() ' metode:

konsoll. varsle ( 'Dette er en advarsel!' ) ;

Produksjon

Som sett vises den spesifiserte egendefinerte advarselen på riktig måte.

Tilnærming 3: Implementer pålogging node.js ved å bruke 'console.error()'-metoden

Denne metoden skriver en feilmelding til konsollen.

Syntaks

konsoll. feil ( [ data ] [ , ... argumenter ] )

I denne syntaksen:

  • ' data ” refererer til den primære meldingen.
  • ' argumenter ” representerer verdiene.

Returverdi

Denne metoden henter en feilmelding.

Oversikt over følgende kodebit som logger en feilmelding når tilstanden ikke er oppfylt:

x = 150 ;
hvis ( x < 100 ) {
konsoll. Logg ( 'Klar til å gå' ) ;
}
ellers {
konsoll. feil ( 'Upassende nummer' ) ;
}

I henhold til denne koden:

  • Initialiser et heltall som skal analyseres for forholdene.
  • Etter det bruker du ' hvis ”-setning slik at hvis det initialiserte heltall er mindre enn “100”, vises den spesifiserte meldingen.
  • Ellers vil ' ellers '-setning utfører feilmeldingen i ' console.error() 'metoden.

Produksjon

Denne utgangen bekrefter at ved utilfredsstillelse vises den tilpassede feilmeldingen på konsollen tilsvarende.

Tilnærming 4: Implementer pålogging node.js ved å bruke 'console.table()'-metoden

Denne metoden oppretter og viser en tabell på konsollen.

Syntaks

konsoll. bord ( td, tc )

Her, ' td ' representerer tabelldataene, og ' tc ' refererer til rekken av tabellkolonner.

Gå nå gjennom kodesetningen nedenfor som oppretter en tabell ved å tilordne en separat indeks til de tilordnede verdiene for videodatatyper to ganger:

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

Produksjon

Tilnærming 5: Implementer pålogging node.js ved å bruke 'Debug Module'

Denne modulen kan brukes til å logge ekstra informasjon om statusen til webmellomvaren, dvs. Express, Koa, etc. når back-end får en internettforespørsel. Mellomvare settes inn i forespørselsrørledningen.

Følgende er fremgangsmåtene for å sette opp loggingsmellomvaren:

Eksempel 1: Sette opp loggingsmiddelvaren fra applikasjonen

« app.use() ”-funksjonen monterer målmiddelvarefunksjonen på den angitte banen.

Syntaks

app. bruk ( pt, cb )

I den ovenfor angitte syntaksen:

  • ' pt ” refererer til banen som mellomvarefunksjonen skal påkalles for.
  • ' cb ” tilsvarer mellomvarefunksjonen(e).

Følgende er kodedemonstrasjonen som setter opp loggingsmellomvaren via en applikasjon og den diskuterte metoden:

konst app = uttrykke ( )

konst logMiddleware = krever ( 'min-logging-mellomvare' )

app. bruk ( logMiddleware )

I denne koden oppretter du en Express-applikasjon og inkluderer ' min-logging-mellomvare ” for å begynne å jobbe med loggingsmellomvaren. Til slutt, bruk ' app.use() ”-funksjon for å montere målmiddelvarefunksjonen på den angitte banen.

Eksempel 2: Sette opp loggingsmellomvare fra applikasjon via ruter

« router.use() ”-funksjonen monterer mellomvare for rutene som serveres via målruteren.

Syntaks

ruter. bruk ( for, func )

I denne syntaksen:

  • ' pt ” refererer til mellomvarebanen.
  • ' func ” tilsvarer funksjonen som ble sendt som tilbakeringing.

Eksempelet nedenfor setter opp loggingsmellomvaren ved hjelp av ruterobjektet og ' router.use() ' funksjon:

konst ruter = uttrykke. Ruter ( )

konst rtLoggingMiddleware = krever ( 'min-rute-logging-mellomvare' )

ruter. bruk ( rtLoggingMiddleware )

I denne koden:

  • « express.Router() ”-funksjonen oppretter et nytt ruterobjekt.
  • Etter det inkluderer du ' min-rute-logging-mellomvare ' og på samme måte, bruk ' router.use() ” funksjon for å montere mellomvare for rutene som betjenes av målruteren.

Tilnærming 6: Implementer pålogging node.js ved å bruke 'Winston-pakken'

Denne spesielle pakken inneholder lagringsalternativer, flere loggnivåer, spørringer og en profiler. Følgende er kodedemonstrasjonen som implementerer logging via denne tilnærmingen:

konst x = uttrykke ( )
konst inkludere = krever ( 'winston' )
konst konsollTransport = ny inkludere. transporter . Konsoll ( )
konst velger = {
transporter : [ konsollTransport ]
}
konst logger = ny inkludere. oppretteLogger ( velger )
funksjon displayRequest ( req, res, neste ) {
logger. info ( rekv. url )
neste ( )
}
x. bruk ( displayRequest )
funksjonsvisningFeil ( feile, kreve, res, neste ) {
logger. feil ( feil )
neste ( )
}
x. bruk ( displayError )

I denne koden:

  • Flere transporter kan settes opp med filtrering og tilpassede formatere kan settes.
  • Dessuten er flere loggerforekomster spesifisert i forskjellige funksjoner, dvs. ' logger.info() ' og ' logger.error() '.
  • Disse loggerne viser henholdsvis informasjonen og feilmeldingene.
  • I denne koden logges bare den forespurte URL-en.

De nedenfor angitte parameterne er tatt av loggerne:

Navn Misligholde Beskrivelse
format Winston.format.json Formaterer infomeldingene
stille Falsk Hvis sant, suspenderes alle loggene.
exitOnError ekte Hvis det er usant, forårsaker ikke de klare unntakene process.exit
nivåer Winston.config.npm.nivåer Nivåene refererer til loggprioriteringene.

Konklusjon

Innloggingen node.js kan implementeres via ' console.log() 'metoden, ' console.warn() 'metoden, ' console.error() 'metoden, ' console.table() 'metoden, ' Feilsøkingsmodul ', eller via ' Winston-pakken '. Konsollmetodene viser informasjonen og feilmeldingene. Feilsøkingsmodulen logger ekstra informasjon om statusen til webmellomvaren, og Winston-pakken inneholder lagringsalternativer og ulike loggnivåer.