logger

Ein Sumor Cloud Tool.
Weitere Dokumentation

Dies ist ein schlanker Logger für Node.JS. Er kann Protokolle auf verschiedenen Ebenen ausgeben und Sie können den Bereich, die ID und die Zeitzone anpassen.

CI Test Coverage Audit

Installation

npm i @sumor/logger --save

Voraussetzungen

Node.JS Version

Erfordert Node.JS Version 16.x oder höher

Erforderliches Node.JS ES-Modul

Da dieses Paket in ES-Modul geschrieben ist, ändern Sie bitte den folgenden Code in Ihrer package.json-Datei:

{
  "type": "module"
}

Verwendung

Allgemeine Verwendung

import Logger from '@sumor/logger'
const logger = new Logger()

logger.trace('Hallo Welt!')
// Sie sehen die folgende Ausgabe:
// 2020-01-01 00:00:00.000 TRACE MAIN - Hallo Welt!

Ändern des Bereichs

In manchen Fällen müssen wir Protokolle kategorisieren. scope wird hierfür verwendet.

import Logger from '@sumor/logger'
const logger = new Logger({
  scope: 'DEMO'
})
logger.trace('Hallo Welt!')
// Sie sehen die folgende Ausgabe:
// 2020-01-01 00:00:00.000 TRACE DEMO - Hallo Welt!

Benutzerkennung

In manchen Fällen benötigen wir eine Benutzerkennung. id wird hierfür verwendet.

import Logger from '@sumor/logger'
const logger = new Logger({
  id: 'USER001'
})
logger.trace('Hallo Welt!')
// Sie sehen die folgende Ausgabe:
// 2020-01-01 00:00:00.000 TRACE MAIN USER001 - Hallo Welt!

Ändern der Ebene

Oft müssen wir nur Protokolle einer bestimmten Ebene ausgeben. Dann können wir entscheiden, ob wir diese speichern und anzeigen möchten oder nicht.

import Logger from '@sumor/logger'
const logger = new Logger()
logger.trace('Hallo Welt!') // trace ist die niedrigste Ebene, alle Protokolle werden ausgegeben
logger.debug('Hallo Welt!')
logger.info('Hallo Welt!')
logger.warn('Hallo Welt!')
logger.error('Hallo Welt!')
logger.fatal('Hallo Welt!') // fatal ist die höchste Ebene, nur kritische Fehler werden ausgegeben

Ändern der Zeitzone

import Logger from '@sumor/logger'
const logger1 = new Logger({
  offset: 2 * 60 // UTC+2-Versatz beträgt 2 Stunden
})
logger1.info('Hallo Welt!')
// Sie sehen die folgende Ausgabe:
// 2020-01-01 02:00:00.000 INFO MAIN - Hallo Welt!

const logger2 = new Logger({
  offset: 8 * 60 // UTC+8-Versatz beträgt 8 Stunden
})
logger2.info('Hallo Welt!')
// Sie sehen die folgende Ausgabe:
// 2020-01-01 08:00:00.000 INFO MAIN - Hallo Welt!

Vordefinierter Code

import Logger from '@sumor/logger'
const code = {
  trace: {
    HTTP_ACCESS: 'Der Benutzer greift über HTTP zu und die IP-Adresse lautet {ip}'
  },
  debug: {
    USER_TOKEN_LOADED: 'Die Benutzeranmeldedaten werden gelesen und die Benutzer-ID lautet {id}'
  },
  info: {
    USER_LOGIN: 'Der Benutzer meldet sich an und die Benutzer-ID lautet {id}'
  },
  warn: {
    USER_LOGOUT: 'Der Benutzer meldet sich ab und die Benutzer-ID lautet {id}'
  },
  error: {
    USER_LOGIN_FAILED: 'Die Benutzeranmeldung ist fehlgeschlagen und die Benutzer-ID lautet {id}'
  },
  fatal: {
    USER_LOGIN_BLOCKED: 'Die Benutzeranmeldung ist blockiert und die Benutzer-ID lautet {id}'
  }
}
const i18n = {
  zh: {
    USER_LOGIN: 'Benutzeranmeldung, Benutzer-ID {id}'
  }
}
const logger1 = new Logger({
  code,
  i18n
})

logger1.code('USER_LOGIN', { id: 'USER001' })
// Sie sehen die folgende Ausgabe:
// 2020-01-01 00:00:00.000 INFO MAIN - Der Benutzer meldet sich an und die Benutzer-ID lautet USER001

const logger2 = new Logger({
  code,
  i18n,
  language: 'zh-US'
})

logger2.code('USER_LOGIN', { id: 'USER001' })
// Sie sehen die folgende Ausgabe:
// 2020-01-01 00:00:00.000 INFO MAIN - Der Benutzer meldet sich an und die Benutzer-ID lautet USER001

const logger3 = new Logger({
  code,
  i18n,
  language: 'zh-CN'
})

logger3.code('USER_LOGIN', { id: 'USER001' })
// Sie sehen die folgende Ausgabe:
// 2020-01-01 00:00:00.000 INFO MAIN - Benutzeranmeldung, Benutzer-ID USER001