Skip to content

Commit 40ded7b

Browse files
committed
Improve logger on backend-javascript
1 parent 74ff7dd commit 40ded7b

File tree

8 files changed

+56
-2
lines changed

8 files changed

+56
-2
lines changed

backend-javascript/package-lock.json

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend-javascript/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"pg": "8.16.3",
8484
"swagger-jsdoc": "6.2.8",
8585
"swagger-ui-express": "5.0.1",
86+
"uuid": "^11.1.0",
8687
"winston": "3.17.0",
8788
"winston-daily-rotate-file": "^5.0.0",
8889
"zod": "3.25.75"

backend-javascript/src/app.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import notFoundHandler from './middlewares/error/not-found-handler.js';
1111
import responseHandler from './middlewares/response/response-handler.js';
1212
import errorHandler from './middlewares/error/error-handler.js';
1313

14+
import correlationIdMiddleware from './middlewares/core/correlation-id.js';
1415
import requestLogger from './infrastructure/logger/request-logger.js';
1516

1617
import fakeAuth from './middlewares/auth/fake-auth.js';
@@ -34,6 +35,7 @@ if (['development', 'test'].includes(appConfig.app.nodeEnv)) {
3435
app.use(fakeAuth(appConfig.app.fakeUser));
3536
}
3637

38+
app.use(correlationIdMiddleware);
3739
app.use(requestLogger);
3840

3941
app.use(healthRoutes);

backend-javascript/src/infrastructure/logger/request-logger.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ const requestLogger = (req, res, next) => {
44
logger.info(`[${req.method}] ${req.originalUrl}`, {
55
method: req.method,
66
route: req.originalUrl,
7+
correlationId: req.correlationId,
8+
ip: req.ip,
9+
userAgent: req.headers['user-agent'],
710
});
811
next();
912
};
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { v4 as uuidv4 } from 'uuid';
2+
3+
const correlationIdMiddleware = (req, res, next) => {
4+
req.correlationId = uuidv4();
5+
res.setHeader('X-Correlation-Id', req.correlationId);
6+
next();
7+
};
8+
9+
export default correlationIdMiddleware;

backend-javascript/src/middlewares/error/error-handler.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ function errorHandler(err, req, res, next) {
1919
context: context,
2020
details: details,
2121
stack: err.stack,
22+
correlationId: req.correlationId,
2223
};
2324

24-
if (statusCode >= 500) {
25+
if (statusCode >= 500 || statusCode === 401 || statusCode === 403 || statusCode === 409) {
2526
logger.error(logMessage, logData);
2627
} else {
2728
logger.warn(logMessage, logData);

backend-javascript/src/middlewares/response/response-handler.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ function responseHandler(req, res, next) {
66
const statusCode = res.locals.statusCode || 200;
77
const payload = res.locals.data || null;
88
const success = statusCode >= 200 && statusCode < 300;
9-
109
const response = { success };
1110

1211
if (payload && payload.metadata && payload.data) {
@@ -22,3 +21,26 @@ function responseHandler(req, res, next) {
2221
}
2322

2423
export default responseHandler;
24+
25+
// function responseHandler(req, res, next) {
26+
// if (res.headersSent) {
27+
// return next();
28+
// }
29+
30+
// const statusCode = res.locals.statusCode || 200;
31+
// const payload = res.locals.data || null;
32+
// const success = statusCode >= 200 && statusCode < 300;
33+
34+
// const response = { success };
35+
36+
// if (payload && payload.metadata && payload.data) {
37+
// response.metadata = payload.metadata;
38+
// response.data = payload.data;
39+
// } else {
40+
// response.data = payload;
41+
// }
42+
43+
// res.status(statusCode).json(response);
44+
// }
45+
46+
// export default responseHandler;

backend-javascript/src/modules/person/person.controller.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class Controller {
1919
getItems = async (req, res, next) => {
2020
try {
2121

22+
// throw new Error('Erreur volontaire');
23+
2224
const result = await this.service.getItems(req.query);
2325
res.locals = { data: result, statusCode: HTTP_STATUS.OK };
2426

0 commit comments

Comments
 (0)