logger

Un outil Sumor Cloud.
Plus de documentation

Il s'agit d'un logger léger pour Node.JS.
Il peut produire des logs à différents niveaux et vous pouvez personnaliser la portée, l'identifiant et le fuseau horaire.

CI Test Couverture Audit

Installation

npm i @sumor/logger --save

Prérequis

Version Node.JS

Nécessite la version 16.x ou supérieure de Node.JS

Requiert le module ES de Node.JS

Comme ce package est écrit en module ES,
veuillez changer le code suivant dans votre fichier package.json :

{
  "type": "module"
}

Utilisation

Utilisation Générale

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

logger.trace('Bonjour le monde !')
// Vous verrez la sortie suivante :
// 2020-01-01 00:00:00.000 TRACE MAIN - Bonjour le monde !

Changer la Portée

Dans certains cas, nous avons besoin de catégoriser les logs. La portée est utilisée à cet effet.

import Logger from '@sumor/logger'
const logger = new Logger({
  scope: 'DEMO'
})
logger.trace('Bonjour le monde !')
// Vous verrez la sortie suivante :
// 2020-01-01 00:00:00.000 TRACE DEMO - Bonjour le monde !

Identifiant Utilisateur

Dans certains cas, nous avons besoin d'identifier l'utilisateur. L'id est utilisé à cet effet.

import Logger from '@sumor/logger'
const logger = new Logger({
  id: 'USER001'
})
logger.trace('Bonjour le monde !')
// Vous verrez la sortie suivante :
// 2020-01-01 00:00:00.000 TRACE MAIN USER001 - Bonjour le monde !

Changer le Niveau

La plupart du temps, nous avons seulement besoin de produire des logs à un certain niveau.
Nous pouvons ensuite décider de les stocker et de les afficher ou non.

import Logger from '@sumor/logger'
const logger = new Logger()
logger.trace('Bonjour le monde !') // trace est le niveau le plus bas, tous les logs seront affichés
logger.debug('Bonjour le monde !')
logger.info('Bonjour le monde !')
logger.warn('Bonjour le monde !')
logger.error('Bonjour le monde !')
logger.fatal('Bonjour le monde !') // fatal est le niveau le plus élevé, seules les erreurs critiques seront affichées

Changer le Fuseau Horaire

import Logger from '@sumor/logger'
const logger1 = new Logger({
  offset: 2 * 60 // L'offset UTC+2 est de 2 heures
})
logger1.info('Bonjour le monde !')
// Vous verrez la sortie suivante :
// 2020-01-01 02:00:00.000 INFO MAIN - Bonjour le monde !

const logger2 = new Logger({
  offset: 8 * 60 // L'offset UTC+8 est de 8 heures
})
logger2.info('Bonjour le monde !')
// Vous verrez la sortie suivante :
// 2020-01-01 08:00:00.000 INFO MAIN - Bonjour le monde !

Code Prédéfini

import Logger from '@sumor/logger'
const code = {
  trace: {
    HTTP_ACCESS: 'L'utilisateur accède via HTTP et l'adresse IP est {ip}'
  },
  debug: {
    USER_TOKEN_LOADED: 'L'information de connexion de l'utilisateur est lue et l'identifiant de l'utilisateur est {id}'
  },
  info: {
    USER_LOGIN: 'L'utilisateur se connecte et l'identifiant de l'utilisateur est {id}'
  },
  warn: {
    USER_LOGOUT: 'L'utilisateur se déconnecte et l'identifiant de l'utilisateur est {id}'
  },
  error: {
    USER_LOGIN_FAILED: 'L'échec de connexion de l'utilisateur et l'identifiant de l'utilisateur est {id}'
  },
  fatal: {
    USER_LOGIN_BLOCKED: 'La connexion de l'utilisateur est bloquée et l'identifiant de l'utilisateur est {id}'
  }
}
const i18n = {
  zh: {
    USER_LOGIN: 'L'utilisateur se connecte et l'identifiant de l'utilisateur est {id}'
  }
}
const logger1 = new Logger({
  code,
  i18n
})

logger1.code('USER_LOGIN', { id: 'USER001' })
// Vous verrez la sortie suivante :
// 2020-01-01 00:00:00.000 INFO MAIN - L'utilisateur se connecte et l'identifiant de l'utilisateur est USER001

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

logger2.code('USER_LOGIN', { id: 'USER001' })
// Vous verrez la sortie suivante :
// 2020-01-01 00:00:00.000 INFO MAIN - L'utilisateur se connecte et l'identifiant de l'utilisateur est USER001

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

logger3.code('USER_LOGIN', { id: 'USER001' })
// Vous verrez la sortie suivante :
// 2020-01-01 00:00:00.000 INFO MAIN - L'utilisateur se connecte et l'identifiant de l'utilisateur est USER001