JavaScript:
Loggføring
Hvordan gjøre det:
Rett ut av boksen, tilbyr JavaScript en enkel måte å logge meldinger til konsollen på:
console.log('Dette vil bli logget til konsollen');
// Utdata:
// Dette vil bli logget til konsollen
Men virkelige applikasjoner krever mer enn bare å skrive ut meldinger til konsollen. Biblioteker som Winston eller Pino kan introduseres for å effektivt håndtere logger:
// Bruker Winston for avansert logging
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'combined.log' })
],
});
logger.info('Hallo, dette er en logghendelse med Winston');
// Denne loggen er skrevet til 'combined.log' i JSON-format
Eksempel på combined.log
utdata:
{"message":"Hallo, dette er en logghendelse med Winston","level":"info"}
Dypdykk
Logging har vært essensiell siden datamaskinenes barndom; systemoperatører ville gjennomgå logger for å forstå systemets ytelse og diagnostisere problemer. Når vi spoler frem til moderne utvikling, har vi gått fra enkle loggfiler til strukturerte og søkbare loggadministrasjonssystemer.
Alternativer til konsoll- eller filbasert logging i JavaScript inkluderer å bruke skybaserte loggingtjenester som Loggly, Datadog eller ELK Stack (Elasticsearch, Logstash, Kibana) som kan samle logger fra flere kilder, tilby visualiseringsverktøy og avansert analytikk.
Når du implementerer logging, vurder følgende:
- Detaljnivå: Inkluderer debug, info, advarsel, feil og kritisk.
- Ytelse: Overdreven logging kan påvirke applikasjonens ytelse.
- Sikkerhet: Vær forsiktig med logging av sensitiv informasjon.
- Format: Strukturerte logger (som JSON) gjør det enklere å søke og tolke logger.
- Retningslinjer for Oppbevaring: Gamle logger må arkiveres eller slettes for å spare plass.
En praktisk strategi for logging definerer hva som skal logges, hvor det skal logges og hvor lenge det skal oppbevares, og balanserer informativ innsikt mot hensyn til ytelse og personvern.
Se også
Sjekk ut disse ressursene for et dypere dypdykk:
- Winston GitHub-repositorium: for detaljert bruk og egendefinerte transportører.
- Pino - Meget lav overhead Node.js-logger: en lettvekts løsning for logging.
- MDN Web Docs: Konsoll: for grunnleggende informasjon om logging basert i nettleser.
- Elastic ELK Stack: en kraftig trio for logghåndtering.
- 12 Factor App Logging: beste praksis for applikasjonslogging.