JavaScript – Logga in till konsolen (console.log vs. ramar)

Utvecklare måste veta vad deras kod gör medan den kör JavaScript, vare sig det är i webbläsaren eller NodeJS-miljön. Sådan information kan hjälpa till att verifiera kod, hitta buggar eller mäta prestanda. Att skriva ut data via konsolen är det mest grundläggande sättet att göra det.


I den här artikeln kommer vi att diskutera loggning till webbläsarkonsolen med metoden console.log () och loggning med populära ramverk och bibliotek..

Grundläggande: Logga in på webbläsarkonsolen med hjälp av console.log ()

På klientsidan eller i webbläsaren kan du använda console.log () för att logga all data inom JavaScript.

Använda console.log () i Javascript eller webbläsaren

Tryck på F12-tangenten för att öppna webbläsarkonsolen. Se till att fliken “Konsol” är vald, så kan du kopiera och klistra in dessa exempel direkt i konsolens kommandorad:

1
2
3
4
5
6

console.log (‘foo’); // sträng

console.log (‘foo-värde:’, 100); // sträng med något värde

console.log (‘foo’, ‘bar’, ‘baz’); // flera strängar

console.log ({name: "Simon", id: 5}); // objekt

console.log ([1, 2, 3], [‘a’, ‘b’, ‘c’]); // flera matriser

console.log (nytt datum ()); // datum

Ett exempel med strängsubstitution

Du kan också använda strängsubstitution, vilket är särskilt användbart med kodslingor.

1
2
3
4
5
6
7
8

var kontakter = [

{namn: ‘Simon’, id: 5, ålder: 25},

{namn: ‘Ben’, id: 7, ålder: 54},

{namn: ‘Lisa’, id: 9, ålder: 32}

];

för (var i = 0; i < contacts.length; i ++) {

   console.log (‘Namn:% s, Ålder:% d.’, kontakter [i]. namn, kontakter [i] .age);

}

Vilket kommer att matas ut:

1
2
3

Namn: Simon, ålder: 25.

Namn: Ben, ålder: 54.

Namn: Lisa, ålder: 32.

Mellanprodukt: Andra användbara konsolloggningsfunktioner

Det finns några andra metoder som liknar console.log (), men alla visuella utgångar skiljer sig något:

console.info () och console.warn ()

1
2

console.info ("Här är lite informativ text för att bara veta vad som händer.");

console.warn ("Du gjorde inte något hemskt, men kanske vill du dubbelkontrollera?");

NodeJS-tips: Tänk på att i NodeJS-miljön kommer console.error och console.warn att matas ut till stderr istället för stdout. Det finns också många färgade loggbibliotek, som kan bidra till att förbättra läsbarheten för loggutgångar i NodeJS.

konsol bord()

Om du behöver mata ut många tabelldata är loggmetoden console.table () användbar; dock stöds det för närvarande inte av vissa webbläsare, inklusive Internet Explorer, Opera och Safari.

1
2
3
4
5

konsol bord( [

{namn: ‘Simon’, id: 5, ålder: 25},

{namn: ‘Ben’, id: 7, ålder: 54},

{namn: ‘Lisa’, id: 9, ålder: 32}

]);

Utgången ser ut så här:

webbläsarkonsol-fliken

Andra metoder

Här är några andra, mer esoteriska, loggningskommandon som du kan läsa upp på:

  • console.assert ()
  • console.trace ()
  • console.time ()

Intermediate (NodeJS): Loggning med hjälp av console.error ()

När du vill logga in fel med NodeJS-konsolen kan du använda console.error () istället för console.log (). På detta sätt kan felen omdirigeras i skalprocessen till stdout, stderr och / eller en logfil. Logga icke-fel kan göras genom att rikta console.log () till stdout.

Shell Input / Output → omdirigeringar 1> till stdout och 2> till stderr.

Ett exempel på hur man omdirigerar output i NodeJS

1
2

console.log (“Det här är bara bullriga felsökningssaker”);

console.error (“Detta betyder att någon bröt något igen”);

Vi kan omdirigera både output (stdout) och fel (stderr) till olika filer:

1 node test.js > ut.logg 2> err.log

Vi kan också omdirigera både output och fel till samma fil:

1 node test.js > allt.logg 2>&1

Avancerat: Använda ramverk & Bibliotek för att logga in på konsolen

För en mer avancerad loggningslösning i webbläsaren kan log4javascript vara användbart. För mer allvarliga NodeJS-loggningsändamål kan det vara bra att använda ett väl testat loggbibliotek, t.ex.

Winston, Node-Bunyan eller Tracer.

Loggar till webbläsarkonsolen med hjälp av JS Framework: log4javascript

Detta är ett JS-loggningsramverk med ett API baserat på det populära Java-loggningsbiblioteket log4j.

Huvudfunktioner i log4javascript:

  • Som standard loggar den till ett popup-konsolfönster med kraftfull sökning (inklusive reguljärt uttryck) och filterfunktioner. Fönstret kan också användas som en inline iframe på sidan.
  • Loggmeddelanden kan skickas till servern via HTTP (eller AJAX, om du vill).
  • Det är mycket konfigurerbart med kända metoder från log4j, inklusive PatternLayout, vilket ger utvecklaren full kontroll över formatet för loggmeddelandena.

JS-loggning - log4javascript
Här är en lättversion av log4javascript (stöder en kärnundergrupp av de ursprungliga funktionerna).

Loggar till NodeJS-konsolen med hjälp av ett bibliotek: Winston, Node-Bunyan, & Tracer

Beroende på processförhållanden kan loggningens asynkrona karaktär leda till förlorade loggmeddelanden om de inte hanteras korrekt. Det är där loggbibliotek för NodeJS blir ganska användbara.

1. Winston Library

Det mest populära NodeJS-loggbiblioteket verkar vara Winston, som är utformat för att vara enkelt och universellt. Winston stöder asynkrona transporter (eller lagringsenheter för dina loggar), så varje instans kan ha flera transporter konfigurerade på olika nivåer. Du kan till exempel ha felloggar konsekvent lagrade på en fjärrplats (som en databas), men alla loggar matas ut till konsolen eller en lokal fil.

2. Node-Bunyan Library

Node-Bunyan-biblioteket ger en enkel och snabb JSON-loggmodul för NodeJS. Idén med detta bibliotek är att serverloggar ska vara strukturerade och att JSON är ett bra format för det. En loggpost är en rad av JSON.stringify () -utgången. Det finns också ett speciellt kommandoradsverktyg för utskrift och filtrering av Bunyan-loggar.

3. Tracer Library

Tracer är ett anpassningsbart NodeJS-loggbibliotek som kan skriva ut loggmeddelanden med en tidsstämpel, filnamn, metodnamn, radnummer, sökväg eller samtalstack. Tracer har också stöd för användardefinierade loggningsnivåer, anpassade utgångsmallar, andra transporter och färgad utgång.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Adblock
    detector