Comment logger mes informations sur un projet node.js ? Journal du développeur

Dans notre api qui utilise l’API Active Campaign, nous souhaitons pouvoir logger tout ce qu’il se passe sur notre serveur : pour dĂ©bugger, mais surtout pour la mise en production prĂ©vue trĂšs bientĂŽt.

Plusieurs modules sont Ă  notre disposition :

  1. log4js
  2. Winston

Utilisation de log4js

PremiÚre étape : installation

npm install log4js

Utilisation de log4js dans votre projet node

Ici, l’utilisation est assez simple :

  1. Appel du module : const log4js = require(‘log4js’);
  2. CrĂ©ation de l’instance : const logger = log4js.getLogger(); (ici, on peut passer un nom de logger, comme ‘app »’).
  3. DĂ©finition du niveau de log : logger.level = ‘debug’;
  4. Enregistrement d’une ligne de log : logger.debug(‘une info’);

Configuration du log4js

Pour choisir oĂč Ă©crire (console, fichier), il va ĂȘtre ĂȘtre intĂ©ressant de configurer notre logger.

Nous avons ici deux choix :

  1. Via le code
  2. Via un fichier de configuration json.

Nous préférons le fichier de configuration

Créez un fichier de configuration log4js.json et placez-le dans un dossier config.

Configuration dans un projet express

Il nous reste plus qu’à l’appeler dans le moteur express :

app.use(log4js.connectLogger(log4js.getLogger(« http »), { level: ‘auto’ }));

Cela remplace morgan proposé par express, par défaut.

NOTE: ici, nous avons deux logger : un dĂ©diĂ© pour les requĂȘtes htp : “http” et un autre pour le log autre “app”.

TIP : comment passer notre logger dans toute l’application ?

Si nous ne souhaitons pas configurer Ă  chaque module notre log4js, il est intĂ©ressant de l’initialiser une fois et le passer Ă  express.

Comment faire ? Nous avons deux pistes :

  1. Utilisation du global de node.js : global.myvar.  Pratique, mais commun vraiment Ă  toute l’application.
  2. Profiter du locals proposer par Express 4 : app.locals.logger = log4js.getLogger();

Notre adresse

1 rue du guesclin
44000 Nantes

Notre téléphone

+33 2 79 65 52 87

Société

DevToBeCurious SARL
84860163900018 - Nantes B 848 601 639