Skip to content

Commit 5fbbfe8

Browse files
committed
Added logging with Winston and Morgan
1 parent e58b765 commit 5fbbfe8

4 files changed

Lines changed: 380 additions & 2 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
node_modules
22
.env
33
database.json
4+
logs/

logger.js

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
const winston = require("winston");
2+
const path = require("path");
3+
4+
// Définir le niveau de log à partir des variables d'environnement, avec 'info' par défaut
5+
const level = process.env.LOG_LEVEL || "info";
6+
7+
const logger = winston.createLogger({
8+
level: level,
9+
// Format des logs
10+
format: winston.format.combine(
11+
winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
12+
winston.format.errors({ stack: true }), // Pour logger la stack trace des erreurs
13+
winston.format.splat(),
14+
winston.format.json() // Logger en format JSON
15+
),
16+
// Où envoyer les logs (transports)
17+
transports: [
18+
// - Écrire tous les logs de niveau 'info' et inférieur dans `combined.log`
19+
// - Écrire tous les logs de niveau 'error' et inférieur dans `error.log`
20+
new winston.transports.File({
21+
filename: path.join(__dirname, "logs", "error.log"),
22+
level: "error",
23+
}),
24+
new winston.transports.File({
25+
filename: path.join(__dirname, "logs", "combined.log"),
26+
}),
27+
],
28+
});
29+
30+
// Si nous ne sommes pas en production, logger aussi dans la console
31+
// avec un format plus lisible.
32+
if (process.env.NODE_ENV !== "production") {
33+
logger.add(
34+
new winston.transports.Console({
35+
format: winston.format.combine(
36+
winston.format.colorize(),
37+
winston.format.simple()
38+
),
39+
})
40+
);
41+
}
42+
43+
// Créer un flux pour que Morgan puisse écrire dans les logs de Winston
44+
logger.stream = {
45+
write: function (message, encoding) {
46+
// Utilise le niveau 'info' pour les logs de Morgan
47+
logger.info(message.trim());
48+
},
49+
};
50+
51+
module.exports = logger;

0 commit comments

Comments
 (0)