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 :
Utilisation de log4js
PremiÚre étape : installation
npm install log4js
Utilisation de log4js dans votre projet node
Ici, lâutilisation est assez simple :
- Appel du module : const log4js = require(‘log4js’);
- CrĂ©ation de lâinstance : const logger = log4js.getLogger(); (ici, on peut passer un nom de logger, comme âapp »â).
- DĂ©finition du niveau de log : logger.level = âdebugâ;
- 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 :
- Via le code
- 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 :
- Utilisation du global de node.js : global.myvar. Pratique, mais commun vraiment Ă toute lâapplication.
- Profiter du locals proposer par Express 4 : app.locals.logger = log4js.getLogger();