logger

Ein Sumor Cloud-Tool.
Weitere Dokumentationen

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

CI Test Abdeckung Überprüfung

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 von '@sumor/logger'
const logger = new Logger()

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

Bereich ändern

In manchen Fällen müssen wir Logs kategorisieren. Bereich wird für diesen Zweck verwendet.

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

Benutzer kennzeichnen

In manchen Fällen müssen wir Benutzer kennzeichnen. ID wird für diesen Zweck verwendet.

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

Ebene ändern

Oftmals müssen wir nur Logs einer bestimmten Ebene ausgeben. Dann können wir entscheiden, ob wir sie speichern und anzeigen möchten oder nicht.

import Logger von '@sumor/logger'
const logger = new Logger()
logger.trace('Hallo Welt!') // trace ist die niedrigste Ebene, alle Logs 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, es werden nur kritische Fehler ausgegeben

Zeitzone ändern

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

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

Vorgegebener Code

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

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

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

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

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

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

Globale Spracheinstellung

process.env.LANGUAGE = 'zh-CN'
import Logger von '@sumor/logger'

const code = {
  info: {
    USER_LOGIN: 'Der Benutzer meldet sich an und die Benutzer-ID ist {id}'
  }
}
const i18n = {
  zh: {
    USER_LOGIN: 'Benutzeranmeldung, Benutzer-ID: {id}'
  }
}
const logger = new Logger({
  code,
  i18n
})

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

Ebene filtern

Wenn Sie Logs nach Ebene filtern möchten, können Sie den folgenden Code verwenden:

import Logger von '@sumor/logger'
const logger = new Logger({
  level: 'info'
})
logger.trace('Hallo Welt!') // trace ist die niedrigste Ebene, wird nicht ausgegeben
logger.debug('Hallo Welt!') // debug ist niedriger als info, wird nicht ausgegeben
logger.info('Hallo Welt!') // info ist gleich wie info, wird ausgegeben
logger.warn('Hallo Welt!') // warn ist höher als info, wird ausgegeben
logger.error('Hallo Welt!') // error ist höher als info, wird ausgegeben
logger.fatal('Hallo Welt!') // fatal ist die höchste Ebene, wird ausgegeben

Wenn Sie diese Bibliothek über mehrere Bibliotheken hinweg innerhalb nutzen, können Sie den folgenden Code verwenden:

import Logger von '@sumor/logger'
const logger = new Logger()
process.env.LOG_LEVEL = 'info'

logger.trace('Hallo Welt!') // trace ist die niedrigste Ebene, wird nicht ausgegeben
logger.debug('Hallo Welt!') // debug ist niedriger als info, wird nicht ausgegeben
logger.info('Hallo Welt!') // info ist gleich wie info, wird ausgegeben
logger.warn('Hallo Welt!') // warn ist höher als info, wird ausgegeben
logger.error('Hallo Welt!') // error ist höher als info, wird ausgegeben

process.env.LOG_LEVEL = 'warn' // Ändern Sie Echtzeit-Log-Ebene
logger.info('Hallo Welt!') // info ist niedriger als warn, wird nicht ausgegeben